Building management system with multi-interface gateway

ABSTRACT

A building management system (BMS) includes building equipment operable to affect a physical state or condition of a building and a gateway device configured to couple to the building equipment via a wireless master slave/token passing (MS/TP) bus or a wired MS/TP bus. The gateway device is configured to communicate building data to a cloud-based platform including a hub configured to receive the building data, a plurality of cloud applications, wherein the plurality of cloud applications are configured to receive the building data from the hub and process the building data to provide a building data output. The cloud-based platform is configured to communicate the building data output to and receive a command based on the building data output from at least one of a control application, an analytic application, or a monitoring application. The gateway device is further configured to operate according to the command.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is a continuation-in-part of U.S. patent applicationSer. No. 17/374,135 filed Jul. 13, 2021, and claims the benefit of andpriority to Indian Provisional Patent Application No. 202121022969 filedMay 24, 2021, the entire disclosures of which are incorporated byreference herein.

BACKGROUND

The present disclosure relates generally to building management systems.A BMS is, in general, a system of devices configured to control,monitor, and manage equipment in or around a building or building area.A BMS can include, for example, a HVAC system, a security system, alighting system, a fire alerting system, any other system that iscapable of managing building functions or devices, or any combinationthereof.

SUMMARY

One implementation of the present disclosure is a building managementsystem including building equipment operable to affect a physical stateor condition of a building. A gateway device configured to couple to thebuilding equipment via a wireless master slave/token passing (MS/TP) busor a wired MS/TP bus. The gateway device is configured to communicatebuilding data to a cloud-based platform. The cloud-based platformcomprises a hub configured to receive the building data, a plurality ofcloud applications, where in the plurality of cloud applications areconfigured to receive the building data from the hub and process thebuilding data to provide a building data output. The cloud-basedplatform is configured to communicate the building data output to atleast one of a control application, an analytic application, or amonitoring application, and receive a command from at least one of thecontrol application, the analytic application, or the monitoringapplication, based on the building data output. The gateway device isfurther configured to operate according to the command.

Another implementation of the present disclosure is a method formonitoring and controlling building equipment in a building managementsystem, the method includes operating building equipment to affect aphysical state or condition of a building. The method further comprisescommunicating at a gateway device coupled to the first buildingequipment via a wireless master slave/token passing (MS/TP) bus or awired MS/TP bus, building data from the building equipment to a platformexternal to the gateway device. The method further includes generating,at a plurality of applications of the platform external to the gatewaydevice, a building data output based on the building data. The methodfurther includes receiving, at at least one of a control application, ananalytic application, or a monitoring application, the building dataoutput, receiving, at the platform external to the gateway device, acommand from at least one of the control application, the analyticapplication, or the monitoring application based on the building dataoutput, and operating the gateway device based on the command.

Another implementation of the present disclosure is a buildingmanagement system (BMS) including one or more non-transitorycomputer-readable storage media storing instructions that, when executedby one or more processors, cause the one or more processors to performoperations. The operations include identifying a BACnet MS/TP device ona wired MS/TP network and a second BACnet MS/TP device on a wirelessMS/TP network, generating, at a gateway device of a building managementsystem, an equipment list listing the first BACnet MS/TP device and thesecond BACnet MS/TP device, and providing the equipment list from thegateway device to a platform external to the gateway device. Theplatform external to the gateway devices includes a hub configured toreceive the equipment list from the gateway device, and a plurality ofapplications, where in the plurality of applications are configured toreceive the equipment list from the hub and process the equipment listto provide a building data output. The operations further includegenerating, at the platform external to the gateway device, a list ofbound properties of the first BACnet MS/TP device and the second BACnetMS/TP device based on the equipment list and creating timeseries for thebound properties of the building equipment, detecting, at the gatewaydevice, a change of value (COV) of a bound property listed in the listof bound properties, and posting a sample of the bound property from thegateway device to the timeseries stored at the platform external to thegateway device in response to detecting the COV of the bound property.The operations further include communicating the building data output toat least one of a control application, an analytic application, or amonitoring application, receiving a command from at least one of thecontrol application, the analytic application, or the monitoringapplication based on the building data output, and operating the gatewaydevice according to the command.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is drawing of a building equipped with a heating, ventilating,and air conditioning (HVAC) system, according to some embodiments.

FIG. 2 is a block diagram of an airside system which can be used in theHVAC system of FIG. 1, according to some embodiments.

FIG. 3 is a block diagram of a building management system (BMS) whichcan be used to monitor and control the building and HVAC system of FIGS.1-2, according to some embodiments.

FIG. 4A is a block diagram of a building management system (BMS) with abuilding automation system (BAS) which can be used to monitor andcontrol the building and HVAC system of FIGS. 1-2, according to someembodiments.

FIG. 4B is a block diagram of a building management system (BMS) whichcan be used to monitor and control the building and HVAC system of FIGS.1-2, according to some embodiments.

FIG. 5 is a block diagram illustrating a gateway device which can beused in BMS 300 of FIG. 3, according to some embodiments.

FIG. 6 is a block diagram illustrating select components of gatewaydevice which can be used in BMS 300 in greater detail, according to someembodiments.

FIG. 7 is a sequence diagram illustrating a process for automaticallydiscovering and generating equipment templates for equipment in abuilding management system, according to some embodiments.

FIG. 8 is a sequence diagram illustrating a process for automaticallydiscovering and interacting with equipment in a building managementsystem, according to some embodiments.

FIG. 9 is a block diagram of a cloud client which can be used with agateway device of a BMS, according to some embodiments.

FIG. 10 is a block diagram illustrating select components of a cloudplatform which can be used in a BMS, according to some embodiments.

FIG. 11 is a sequence diagram illustrating a process for providing acloud platform with an equipment list from a gateway device, accordingto some embodiments.

FIG. 12 is a sequence diagram illustrating a process for providing acloud platform with an equipment template from a gateway device whichcan be used in a BMS, according to some embodiments.

FIG. 13 is a flow diagram illustrating a technique which can be used bythe BMS of FIGS. 3-4 to automatically discover and interact with BMSequipment, according to some embodiments.

FIG. 14 is a flow diagram illustrating a technique which can be used bythe BMS of FIGS. 3-4 to create and use equipment models for system busdevices, according to some embodiments.

FIGS. 15A and 15B are block diagrams illustrating a communicationsinterface of a gateway device for use in a BMS, according to someembodiments.

FIGS. 16-18 are block diagrams illustrating a BMS with a gateway deviceusing detachable network adapters which can be used to monitor andcontrol a building, according to some embodiments.

FIG. 19 is a flow diagram illustrating a technique for integratingdetachable network adapters which can be performed by the BMS of FIGS.16-18, according to some embodiments.

FIG. 20 is a sequence diagram illustrating a process for updating a datacontrol template which can be performed by the BMS of FIG. 3, accordingto some embodiments.

FIG. 21 is a sequence diagram illustrating a telemetry data process forsending COV data to a cloud platform which can be performed by the BMSof FIG. 3, according to some embodiments.

FIG. 22 is a sequence diagram illustrating a process for sending aheartbeat message to a cloud platform which can be performed by the BMSof FIG. 3, according to some embodiments.

FIG. 23 is a flow chart of a time synchronization process forsynchronizing the time on the gateway device which can be performed bythe BMS of FIG. 3, according to some embodiments.

FIG. 24 a sequence diagram illustrating a firmware update process whichcan be used by a gateway device of FIG. 5, according to someembodiments.

FIGS. 25-26 are block diagrams illustrating a high level process flowperformed by the BMS of FIG. 9, according to some embodiments.

DETAILED DESCRIPTION

Referring generally to the FIGURES, a building management system (BMS)with automatic equipment discovery and equipment model distribution isshown, according to some embodiments. A BMS is, in general, a system ofdevices configured to control, monitor, and manage equipment in oraround a building or building area. A BMS can include, for example, aHVAC system, a security system, a lighting system, a fire alertingsystem, any other system that is capable of managing building functionsor devices, or any combination thereof.

In brief overview, the BMS described herein provides a systemarchitecture that facilitates control of the BMS and devices within itover via a gateway device. Some devices of this network may be unable tocommunicate over an IP network and/or are not “Internet enabled.” Inthis regard, only local control, i.e., commands sent over the buildingnetwork for the devices may be available, i.e., commands can only besent to the devices of the building via the building network. To allowthe various devices of the building network access to the Internet or anIP based network, one or more gateways can be installed in the buildingwhich bridge the gap between the building networks and IP based networks(e.g., the Internet). By establishing a link between the buildingnetworks of the building and various IP based networks, local control ofthe building is extended to remote control of the building via theInternet as users can access the various devices of the buildingremotely, via the internet.

To properly enable the devices of the building to be controlled via theInternet, a logical network representation of the building network, thedevices of the building, and the gateways (e.g., configuration data) canbe maintained by a building server. The building server may be anyInternet server which the gateways of the building communicate with.This remote building server may store and maintain a logical networkrepresentation of the gateways and the devices of the building. In thisregard, the gateways of the building may pass equipment models andindications of the devices connected to the gateway to the buildingserver. Further, the various connections between the gateways and thedevices may be recorded by the building server, this data received bythe remote building server via the gateways.

A equipment model, as referred to herein, may indicate a list of pointobjects of one or more devices that a particular gateway is responsiblefor collecting data from and/or sending control signals to. For example,an analog input may be a particular point object in an equipment model.The equipment model may indicate that the analog input is sampled everyminute. In this regard, the gateway may sample the analog input everyminute. In another example, the same equipment model may include a pointobject which is a “valve position point.” A building server may send acommand to the gateway which may be a command position (e.g., 45degrees, 5 Volts, and/or 455 steps) which the gateway may send to thedevice with the “valve position point.” As referred to herein, “collect”may refer to extracting data from a device.

The BMS described below can provide automatic equipment discovery andequipment model distribution for equipment connected to the gateways.Equipment discovery can occur across multiple different master slavetoken passing (“MS/TP”) communications busses (e.g., wireless MS/TPbuses, wired MS/TP buses, etc.) and across multiple differentcommunications protocols (BACnet, MODbus, etc.). In some embodiments,equipment discovery is accomplished using active node tables, whichprovide status information for devices connected to each communicationsbus. For example, each communications bus can be monitored for newdevices by monitoring the corresponding active node table for new nodes.When a new device is detected, the BMS can begin interacting with thenew device (e.g., sending control signals, using data from the device)without user interaction.

Some devices in the BMS present themselves to the network usingequipment models. An equipment model defines equipment objectattributes, view definitions, schedules, trends, and the associatedBACnet value objects (e.g., analog value, binary value, multistatevalue, etc.) that are used for integration with other systems. Somedevices in the BMS store their own equipment models. Other devices inthe BMS have equipment models stored externally (e.g., within otherdevices). For example, a gateway device can store the equipment modelfor a chiller. In some embodiments, the gateway device automaticallycreates the equipment model for the chiller and/or other devices on theMS/TP bus. Other gateway devices can also create equipment models fordevices connected to their MS/TP buses. The equipment model for a devicecan be created automatically based on the types of data points exposedby the device on the MS/TP bus, device type, and/or other deviceattributes. Several examples of automatic equipment discovery andequipment model distribution are discussed in greater detail below.Throughout this disclosure, the terms “equipment model,” “equipmentmodel template,” and “equipment template” are used interchangeably.

Building and HVAC System

Referring now to FIG. 1, an exemplary building and HVAC system in whichthe systems and methods of the present invention can be implemented areshown, according to an exemplary embodiment. In FIG. 1, a perspectiveview of a building 10 is shown. Building 10 is served by a HVAC system100. HVAC system 100 can include a plurality of HVAC devices (e.g.,heaters, chillers, air handling units, pumps, fans, thermal energystorage, etc.) configured to provide heating, cooling, ventilation, orother services for building 10. For example, HVAC system 100 is shown toinclude a waterside system 120 and an airside system 130. Watersidesystem 120 can provide a heated or chilled fluid to an air handling unitof airside system 130. Airside system 130 can use the heated or chilledfluid to heat or cool an airflow provided to building 10. An exemplaryairside system which can be used in HVAC system 100 are described ingreater detail with reference to FIG. 2B.

HVAC system 100 is shown to include a chiller 102, a boiler 104, and arooftop air handling unit (AHU) 106. Waterside system 120 can use boiler104 and chiller 102 to heat or cool a working fluid (e.g., water,glycol, etc.) and can circulate the working fluid to AHU 106. In variousembodiments, the HVAC devices of waterside system 120 can be located inor around building 10 (as shown in FIG. 1) or at an offsite locationsuch as a central plant (e.g., a chiller plant, a steam plant, a heatplant, etc.). The working fluid can be heated in boiler 104 or cooled inchiller 102, depending on whether heating or cooling is required inbuilding 10. Boiler 104 can add heat to the circulated fluid, forexample, by burning a combustible material (e.g., natural gas) or usingan electric heating element. Chiller 102 can place the circulated fluidin a heat exchange relationship with another fluid (e.g., a refrigerant)in a heat exchanger (e.g., an evaporator) to absorb heat from thecirculated fluid. The working fluid from chiller 102 and/or boiler 104can be transported to AHU 106 via piping 108.

AHU 106 can place the working fluid in a heat exchange relationship withan airflow passing through AHU 106 (e.g., via one or more stages ofcooling coils and/or heating coils). The airflow can be, for example,outside air, return air from within building 10, or a combination ofboth. AHU 106 can transfer heat between the airflow and the workingfluid to provide heating or cooling for the airflow. For example, AHU106 can include one or more fans or blowers configured to pass theairflow over or through a heat exchanger containing the working fluid.The working fluid can then return to chiller 102 or boiler 104 viapiping 110.

Airside system 130 can deliver the airflow supplied by AHU 106 (i.e.,the supply airflow) to building 10 via air supply ducts 112 and canprovide return air from building 10 to AHU 106 via air return ducts 114.In some embodiments, airside system 130 includes multiple variable airvolume (VAV) units 116. For example, airside system 130 is shown toinclude a separate VAV unit 116 on each floor or zone of building 10.VAV units 116 can include dampers or other flow control elements thatcan be operated to control an amount of the supply airflow provided toindividual zones of building 10. In other embodiments, airside system130 delivers the supply airflow into one or more zones of building 10(e.g., via supply ducts 112) without using intermediate VAV units 116 orother flow control elements. AHU 106 can include various sensors (e.g.,temperature sensors, pressure sensors, etc.) configured to measureattributes of the supply airflow. AHU 106 can receive input from sensorslocated within AHU 106 and/or within the building zone and can adjustthe flow rate, temperature, or other attributes of the supply airflowthrough AHU 106 to achieve setpoint conditions for the building zone.

Airside System

Referring now to FIG. 2, a block diagram of an airside system 200 isshown, according to an exemplary embodiment. In various embodiments,airside system 200 can supplement or replace airside system 130 in HVACsystem 100 or can be implemented separate from HVAC system 100. Whenimplemented in HVAC system 100, airside system 200 can include a subsetof the HVAC devices in HVAC system 100 (e.g., AHU 106, VAV units 116,ducts 112-114, fans, dampers, etc.) and can be located in or aroundbuilding 10. In some embodiments, referring to FIG. 3, airside system200 can be used in BMS 300 as a third-party COBP rooftop unit 336.Airside system 200 can operate to heat or cool an airflow provided tobuilding 10.

Airside system 200 is shown to include an economizer-type air handlingunit (AHU) 202. Economizer-type AHUs vary the amount of outside air andreturn air used by the air handling unit for heating or cooling. Forexample, AHU 202 can receive return air 204 from building zone 206 viareturn air duct 208 and can deliver supply air 210 to building zone 206via supply air duct 212. In some embodiments, AHU 202 is a rooftop unitlocated on the roof of building 10 (e.g., AHU 106 as shown in FIG. 1) orotherwise positioned to receive both return air 204 and outside air 214.AHU 202 can be configured to operate exhaust air damper 216, mixingdamper 218, and outside air damper 220 to control an amount of outsideair 214 and return air 204 that combine to form supply air 210. Anyreturn air 204 that does not pass through mixing damper 218 can beexhausted from AHU 202 through exhaust damper 216 as exhaust air 222.

Each of dampers 216-220 can be operated by an actuator. For example,exhaust air damper 216 can be operated by actuator 224, mixing damper218 can be operated by actuator 226, and outside air damper 220 can beoperated by actuator 228. Actuators 224-228 can communicate with an AHUcontroller 230 via a sensor/actuator (SA) bus 232. Actuators 224-228 canreceive control signals from AHU controller 230 and can provide feedbacksignals to AHU controller 230. Feedback signals can include, forexample, an indication of a current actuator or damper position, anamount of torque or force exerted by the actuator, diagnosticinformation (e.g., results of diagnostic tests performed by actuators224-228), status information, commissioning information, configurationsettings, calibration data, and/or other types of information or datathat can be collected, stored, or used by actuators 224-228. AHUcontroller 230 can be an economizer controller configured to use one ormore control algorithms (e.g., state-based algorithms, extremum seekingcontrol (ESC) algorithms, proportional-integral (PI) control algorithms,proportional-integral-derivative (PID) control algorithms, modelpredictive control (MPC) algorithms, feedback control algorithms, etc.)to control actuators 224-228.

Still referring to FIG. 2, AHU 202 is shown to include a cooling coil234, a heating coil 236, and a fan 238 positioned within supply air duct212. Fan 238 can be configured to force supply air 210 through coolingcoil 234 and/or heating coil 236 and provide supply air 210 to buildingzone 206. AHU controller 230 can communicate with fan 238 via SA bus 232to control a flow rate of supply air 210. In some embodiments, AHUcontroller 230 controls an amount of heating or cooling applied tosupply air 210 by modulating a speed of fan 238.

Cooling coil 234 can receive a chilled fluid from waterside system 120via piping 242 and can return the chilled fluid to waterside system 120via piping 244. Valve 246 can be positioned along piping 242 or piping244 to control a flow rate of the chilled fluid through cooling coil234. In some embodiments, cooling coil 234 includes multiple stages ofcooling coils that can be independently activated and deactivated (e.g.,by AHU controller 230) to modulate an amount of cooling applied tosupply air 210.

Heating coil 236 may receive a heated fluid from waterside system 120via piping 248 and can return the heated fluid to waterside system 120via piping 250. Valve 252 can be positioned along piping 248 or piping250 to control a flow rate of the heated fluid through heating coil 236.In some embodiments, heating coil 236 includes multiple stages ofheating coils that can be independently activated and deactivated (e.g.,by AHU controller 230) to modulate an amount of heating applied tosupply air 210.

Each of valves 246 and 252 can be controlled by an actuator. Forexample, valve 246 can be controlled by actuator 254 and valve 252 canbe controlled by actuator 256. Actuators 254-256 can communicate withAHU controller 230 via SA bus 232. Actuators 254-256 can receive controlsignals from AHU controller 230 and can provide feedback signals to AHUcontroller 230. In some embodiments, AHU controller 230 receives ameasurement of the supply air temperature from a temperature sensor 262positioned in supply air duct 212 (e.g., downstream of cooling coil 234and/or heating coil 236).

In some embodiments, AHU controller 230 operates valves 246 and 252 viaactuators 254-256 to modulate an amount of heating or cooling providedto supply air 210 (e.g., to achieve a setpoint temperature for supplyair 210 or to maintain the temperature of supply air 210 within asetpoint temperature range). The positions of valves 246 and 252 affectthe amount of heating or cooling provided to supply air 210 by coolingcoil 234 or heating coil 236 and may correlate with the amount of energyconsumed to achieve a desired supply air temperature. In someembodiments, AHU controller 230 receives a measurement of the zonetemperature from a temperature sensor 264 positioned within buildingzone 206. AHU controller 230 can control the temperature of supply air210 and/or building zone 206 by activating or deactivating coils234-236, adjusting a speed of fan 238, or a combination of both.

Still referring to FIG. 2, AHU controller 230 can be connected togateway device 268 via system bus 266. System bus 266 can be a wiredMS/TP bus, and can include any of a variety of communications hardware(e.g., wires, optical fiber, terminals, etc.) and/or communicationssoftware configured to facilitate communications between AHU controller230 and gateway device 268. In some embodiments, system bus 266 can be awireless MS/TP bus, and can include operating over a wireless MS/TPnetwork such as a Zigbee 802.15.4 network. The wireless MS/TP bus caninclude a plurality of wireless bridge devices configured to build theMS/TP network and provide communication between AHU controller 230 andgateway device 268 in such a manner so that the devices areoperationally unaware of the wireless connection. Gateway device 268 cancommunicate with client device 272 via data communications link 270(e.g., BACnet IP, Ethernet, wired or wireless communications, etc.) andcommunicate with cloud platform 276 over internet connection 274.Internet connection 274 can be a wired or wireless connection (i.e.Ethernet, Wi-Fi, Cellular, etc.).

Client device 272 can include one or more human-machine interfaces orclient interfaces (e.g., graphical user interfaces, reportinginterfaces, text-based computer interfaces, client-facing web services,web servers that provide pages to web clients, etc.) for controlling,viewing, or otherwise interacting with HVAC system 100, airside system200, BMS 300 of FIG. 3, and/or the various subsystems, and devicesthereof. Client device 272 can be a computer workstation, a clientterminal, a remote or local interface, or any other type of userinterface device. Client device 272 can be a stationary terminal or amobile device. For example, client device 272 can be a desktop computer,a computer server with a user interface, a laptop computer, a tablet, asmartphone, a PDA, or any other type of mobile or non-mobile device.System bus 266, gateway device 268, client device 272 and cloud platform276 are explained in further detail below with reference to FIG. 3.

Building Management System with Cloud-Based Monitoring and Control

Referring now to FIG. 3, a block diagram of a building management system(BMS) 300 is shown, according to an exemplary embodiment. A BMS is, ingeneral, a system of devices configured to control, monitor, and manageequipment in or around a building or building area. A BMS can include,for example, a HVAC system, a security system, a lighting system, a firealerting system, any other system that is capable of managing buildingfunctions or devices, or any combination thereof. BMS 300 can be used tomonitor and control the devices of HVAC system 100 and/or airside system200 (e.g., HVAC equipment), and/or waterside system 120, as well asother types of BMS devices (e.g., BACnet MS/TP devices, lightingequipment, security equipment, etc.).

In brief overview, BMS 300 provides a system architecture thatfacilitates central control of smart and non-smart building equipment ofBMS 300 from a networked location. In some embodiments, BMS 300 canprovide automatic equipment discovery and equipment model distribution.Equipment discovery can occur across multiple different communicationsnetworks (e.g., system bus, wireless system bus, etc.) and acrossmultiple different communications protocols (e.g., LONworks, MODbus,BACnet, etc.). For the purposes of simplicity, this disclosure willdescribe a building management system with reference to the BACnetprotocol, but it should be understood by one of ordinary skill in theart that other building management protocols may be used. In someembodiments, equipment discovery is accomplished using active nodetables, which provide status information for devices connected to eachcommunications bus. For example, each communications bus can bemonitored for new devices by monitoring the corresponding active nodetable for new nodes. When a new device is detected, BMS 300 can begininteracting with the new device (e.g., sending control signals, usingdata from the device) without user interaction.

Some devices in BMS 300 present themselves to the network usingequipment models. An equipment model defines equipment objectattributes, view definitions, schedules, trends, and the associatedBACnet value objects (e.g., analog value, binary value, multistatevalue, etc.) that are used for integration with other systems. Anequipment model for a device can include a collection of points objectsthat provide information about the device (e.g., device name, networkaddress, model number, device type, etc.) and store present values ofvariables or parameters used by the device. For example, the equipmentmodel can include point objects (e.g., standard BACnet point objects)that store the values of input variables accepted by the device (e.g.,setpoint, control parameters, etc.), output variables provided by thedevice (e.g., temperature measurement, feedback signal, etc.),configuration parameters used by the device (e.g., operating mode,actuator stroke length, damper position, tuning parameters, etc.). Thepoint objects in the equipment model can be mapped to variables orparameters stored within the device to expose those variables orparameters to external systems or devices. The equipment models andassociated BACnet value objects and point objects can make up thebuilding data that can be collected by BMS 300. For example, gatewaydevice 302 can collect building data (e.g., output variables provided bythe device) and communicate that building data to cloud platform 324 forprocessing and control of BMS 300.

In some embodiments, gateway device 302 automatically creates theequipment model for chiller 316 or other devices connected to it. Othergateway devices can also create equipment models for devices connectedto them. The equipment model for a device can be created automaticallybased on the types of data points exposed by the device on thecommunications bus, device type, and/or other device attributes. In someembodiments, BMS 300 is configured to perform some or all of theoperations described in U.S. patent application Ser. No. 16/844,328filed Apr. 9, 2020, the entire disclosure of which is incorporated byreference herein.

Still referring to FIG. 3, BMS 300 is shown to include a gateway device302 (i.e., a connected equipment gateway). Gateway device 302 cancommunicate with client devices 304 (e.g., user devices, desktopcomputers, laptop computers, mobile devices, etc.) via a datacommunication link 328 (e.g., BACnet IP, Ethernet, wired or wirelesscommunication, etc.). Gateway device 302 can provide a user interface toclient devices 304 via data communications link 328. The user interfacemay allow users to monitor and/or control BMS 300 via client devices304. Several examples of the operations that may be performed by gatewaydevices facilitating communication between building equipment and cloudplatforms are described in U.S. Pat. No. 10,868,857 filed Apr. 21, 2017and U.S. patent application Ser. No. 16/844,328 filed Apr. 9, 2020. Theentire disclosures of both these patent applications are incorporated byreference herein.

In some embodiments, gateway device 302 is connected to buildingequipment via a system bus 330. Building equipment can be devices ofHVAC system 100 as well as other types of BMS devices (e.g., lightingequipment, security equipment, etc.) and/or any BACnet MS/TP masterdevice. In some embodiments, building equipment are smart communicatingequipment controllers, SC-EQ, manufactured by Johnson Controls, Inc.Further details of the SC-EQ device may be found in U.S. patentapplication Ser. No. 16/659,155 filed Oct. 21, 2019. The entiredisclosure of U.S. patent application Ser. No. 16/659,155 isincorporated by reference herein.

System bus 330 can include any of a variety of communications hardware(e.g., wire, optical fiber, terminals, etc.) configured to facilitatecommunications between gateway device 302 and other devices connected tosystem bus 330. In some embodiments system bus 330 can additionallyinclude and/or alternatively be replaced by a wireless system bus, shownas a wireless system bus 332.

Wireless system bus 332 can include a plurality of wireless bridgedevices forming a multi-point to multi-point network. The wirelessbridge devices of wireless system bus 332 are shown as MS/TP coordinator306 and MS/TP routers 308 and 310. In some embodiments, MS/TPcoordinator 306 is a component of gateway device 302. Still in others,MS/TP coordinator 306 is a separate device and may be connected togateway device 302 using a RJ12 or MS/TP COM port. MS/TP routers 308 and310 interface between building equipment (e.g., MS/TP devices) such ascontroller 312 and chiller 314 to allow them to be discovered by MS/TPcoordinator 306 and posted on system bus 330 as if the devices wereconnected directly to system bus 330. The multi-point to multi-pointnetwork can be a mesh network created between a MS/TP coordinator 306and MS/TP routers 308 and 310. For example, the mesh network may be an802.15.4 based network such as ZIGBEE. Wireless system bus 332 may allowthe gateway device 302 to communicate with devices connected to via thewireless system bus 332. Wireless system bus devices may include anyBACnet MS/TP device and/or any device that can be connected to gatewaydevice 302 over system bus 330. Referring still to FIG. 3, wirelesssystem bus devices can include controller 312 and chiller 314. Wirelesssystem bus 332 may be configured so that the wireless system bus devicesact as if they were connected directly to system bus 330. In someembodiments, neither the wireless system bus devices nor gateway device302 are aware of the intermediate network of MS/TP devices. In someembodiments, the gateway device 302 is connected to a mix of devicesover both system bus 330 and wireless system bus 332. For example,system bus 330 and wireless system bus 332 can connect gateway device302 with controller 312, chiller 314, chiller 316, a constant volume(CV) rooftop unit (RTU) 318, input/output (TO) controller 320, networkautomation engine (NAE) or third-party controller 322, and thermostatcontroller 334 connected over wired input 338 to third-party rooftopunit 336.

In some embodiments, gateway device 302 is connected to wireless systembus 332 via system bus 330. In other embodiments, gateway device 302 isconnected directly to wireless system bus 332. In some embodiments, BMS300 operates only using wireless system bus 332. In some embodiments BMS300 can include both a wired system bus 330 and a wireless system bus332, as shown in FIG. 3. Throughout this disclosure, the devices andbuilding equipment connected to system bus 330 and wireless system bus332 may be referred to together as system bus devices.

Gateway device 302 can be configured to communicate using a MS/TPprotocol or any other communications protocol. Gateway device 302 cancollect building data (e.g., equipment models, value objects, pointobjects, and/or any other data made available by building equipment) andcommunicate that data to cloud platform 324. Cloud platform 324 canprocess the data and direct gateway device 302 to collect specific data(e.g., listed value objects, point objects, etc.) from specific buildingequipment. Gateway device 302 can subscribe to the indicated objects andcommunicate the data to cloud platform 324 periodically.

Still referring to FIG. 3, gateway device 302 can be configured tocommunicate with cloud platform 324 via an internet communications link326 (e.g., Wi-Fi, Ethernet, cellular, etc.) In some embodiments,internet communications link 326 may be provided by external networkadapters attached to gateway device 302, as explained in further detailbelow. Gateway device 302 may be configured to connect the buildingequipment (e.g., chillers, controllers, RTUs, and/or other MS/TPdevices) on the trunk (e.g., system bus 330, wireless system bus 332,etc.) to cloud platform 324. Gateway device 302 can facilitate thecommunication of building data from building equipment to cloud platform324. The user interface may allow users to view the building data and/ormonitor and control this connection to manage BMS 300, including thedata rate between gateway device 302, the building equipment, and cloudplatform 324. Gateway device 302 can be configured to automaticallydiscover equipment in BMS 300 and automatically generate or obtainequipment models for the discovered equipment. Gateway device 302 canalso be configured to gather more data from the equipment (e.g.,equipment model templates) and to use the equipment model templates todrive features of gateway device 302. In some embodiments, gatewaydevice 302 is configured similarly and performs in a similar manner to agateway device described in commonly owned U.S. patent application Ser.No. 16/844,328 filed Apr. 9, 2020, the entire disclosure of which hasbeen incorporated by reference herein.

Cloud platform 324 can include a variety of cloud-based services and/orapplications configured to store, process, analyze, or otherwise consumethe data collected from gateway device 302. Cloud platform 324 may beaccessed by various users (e.g., enterprise users, mechanicalcontractors, cloud application users, etc.) via control applications.Some users can access and interact with gateway device 302 directly viaclient devices 304 (e.g., via a UI provided locally by gateway device302), whereas other users can interact with cloud platform 324 (e.g.,via a UI provided by cloud platform 324). Users can interact with cloudplatform 324 via control applications configured to display the buildingdata and provide a user with control of the gateway device 302. Thefeatures of cloud platform 324 and gateway device 302 are described ingreater detail below.

Gateway device 302 can provide a user interface for any devicecontaining an equipment model. Building equipment such as thermostatcontroller 334 can provide their equipment models to gateway device 302via system bus 330. In some embodiments, gateway device 302automatically creates equipment models for connected devices that do notcontain an equipment model (e.g., non-smart equipment, legacy equipment,third-party equipment, etc.). For example, gateway device 302 can createan equipment model for any device that responds to a device treerequest. In some embodiments, gateway device 302 can create an equipmentmodel for any device that responds to a read object list attributesrequest. The equipment models created by gateway device 302 can bestored within gateway device 302 and/or transferred to cloud platform324. Gateway device 302 can then provide a user interface for devicesthat do not contain their own equipment models using the equipmentmodels created by gateway device 302. In some embodiments, gatewaydevice 302 stores a view definition for each type of equipment connectedvia system bus 330 and wireless system bus 332 and uses the stored viewdefinition to generate a user interface for the equipment.

Referring now to FIG. 4A, a block diagram of BMS 400 is shown, accordingto an exemplary embodiment. In some embodiments, BMS 400 may includesome or all of the features of BMS 300, as described with reference toFIG. 3. BMS 400 is shown to include gateway device 302 connected via BASbus 404 to MS/TP coordinator 306. BMS 400 is shown to also includegateway device 302 connected over BAS bus 404 to chiller 316, andcontroller 408. MS/TP coordinator 306 can be connected via wireless BASbus 406 to MS/TP routers 308 and 310. MS/TP router 308 is connected tocontroller 312 via wired input 342 and MS/TP router 310 is connected tochiller 314 via wired input 344. Controller 312 can act as anintermediary to connect MS/TP router 310 to other building equipment. Asexplained above with reference to FIG. 3, the MS/TP coordinator 306 andMS/TP routers 308, and 310 create a wireless system bus 332 forconnecting the gateway device 302 to controller 312 and chiller 314 asthough they were connected to gateway device 302 directly over BAS bus404. Wireless BAS bus 406 may be transparent so that the gateway device302 and the chillers 314 are unaware of the wireless connection. In someembodiments, a local building automation system (BAS) 402 is alsoconnected to gateway device 302 via BAS bus 404. Gateway device 302 canconnect to devices and local BAS 402 on the BAS trunk (e.g., system bus330) when a local BAS 402 is present by daisy chaining with any of theMS/TP controllers on the BAS trunk 404 and communicate using the BACnetMS/TP protocol.

Referring now to FIG. 4B, a block diagram of BMS 450 is shown, accordingto an exemplary embodiment. BMS 450 may include some or all of thefeatures of BMS 400 as described above with reference to FIG. 4A. BMS450 illustrates a BMS without a local BAS. Gateway device 302 mayconnect to MS/TP controllers on a private connected services (CS) bus452 instead of BAS trunk 404 as shown in FIG. 4A. BMS 450 can beconfigured according to the networks provided in the Appendix H and inU.S. application Ser. No. 17/374,135, filed Jul. 13, 2021 andincorporated herein by reference in its entirety.

Gateway Device

Referring now to FIG. 5, a block diagram illustrating gateway device 302of BMS 300 in further detail is shown, according to an exemplaryembodiment. Gateway device 302 is shown to include a system bus datalink526, a communications interface 516, and a processing circuit 506.System bus datalink 526 can connect to system bus 330 and can be used bygateway device 302 to communicate with various other devices connectedto system bus 330 and/or wireless system bus 332. In some embodiments,system bus datalink connects to data access layer 520. In someembodiments, system bus datalink is a component of data access layer520. System bus datalink 526 can be used to communicate with chiller316, CV RTU 318, 10 controller 320, and/or thermostat controller 334 viasystem bus 330. System bus datalink 526 may also connect to MS/TPcoordinator 306 via system bus 330, which in turn connects system busdatalink 526 to wireless system bus 332. For example, referring back nowto FIG. 3, wireless system bus 332 may connect to MS/TP routers 308 and310 which in turn connect to wireless system bus devices such ascontroller 312 and chiller 314, effectively connecting gateway 302 tocontroller 312 and chiller 314 as if they were connected via system bus330. In other embodiments, MS/TP coordinator may be directly connectedto system bus datalink 526 bypassing system bus 330.

In some embodiments, the automatic equipment discovery is based on anactive node tables for system bus 330. Still referring to FIG. 5, forexample, gateway device 302 is shown to include active node table 528.In embodiments where MS/TP coordinator 306 is connected directly togateway device 302 and wireless system 332 is separate from system bus330, there may be separate node tables for wireless system bus 332 andsystem bus 330. Referring back to FIG. 5, active node table 528 providesstatus information for the devices connected to system bus 330 andwireless system bus 332. For example, active node table 528 can indicatewhich building equipment (e.g., MS/TP devices) are participating in thetoken ring used to exchange information via system bus 330 and/orwireless system bus 332. In some embodiments, active node table 528 is atable in the form of an array of bytes. The location of each byte inactive node table 528 may represent the token ring participation statusof a particular node or device. Devices connected to system bus 330 andwireless system bus 332 can be identified by MAC address (or any otherdevice identifier) in active node table 528. Advantageously, active nodetable 528 can list the MAC addresses of the devices connected to systembus 330 and wireless system bus 332 without requiring the devices to beplaced in discovery mode.

The active node table can be stored within one or more devices connectedto the system bus 330. For example, as shown in FIG. 5, active nodetable 528 can be stored within gateway device 302. In some embodiments,active node table 528 includes a change counter attribute. Each time achange to active node table 528 occurs (e.g., a new device beginscommunicating on system bus 330 and/or wireless system bus 332), thechange counter attribute can be incremented by system bus datalink 526.Other objects or devices interested in the status of active node table528 can subscribe to a change of value (COV) of the change counterattribute. When the change counter attribute is incremented, system busdatalink 526 can report the COV to any object or device that hassubscribed to the COV. For example, data access layer 520 can subscribeto the COV of the change counter attribute and can be automaticallynotified of the COV when a change to active node table 528 occurs. Inresponse to receiving the COV notification, data access layer 520 canread active node table 528 and discover the new device. Data accesslayer 520 can use the information from active node table 528 to generatea list of devices connected to system bus 330 and wireless system bus332 (e.g., equipment list). Data access layer 520 can store theequipment list in gateway device 302. In some embodiments, the equipmentlist can be additionally and/or alternatively transmitted to and storedin cloud platform 324.

The equipment list generated by gateway device 302 can includeinformation about each device connected to system bus 330 and wirelesssystem bus 332 (e.g., device type, device model, device ID, MAC address,device attributes, etc.). When a new device is detected on system bus330 and/or wireless system bus 332, gateway device 302 can automaticallyupdate the equipment list. Gateway device 302 can provide the updatedequipment list to cloud platform 324. In some embodiments, if cloudplatform 324 is missing an equipment model template for buildingequipment listed in the equipment list, it may request the equipmentmodel template from gateway device 302. Gateway device 302 can retrievethe equipment model from the device if the device stores its ownequipment model. If the device does not store its own equipment model,gateway device 302 can retrieve a list of point values provided by thedevice. Gateway device 302 can then use the equipment model and/or listof point values to generate an equipment model template for the device.Gateway device 302 may present information about the connected deviceson system bus 330 and wireless system bus 332 to a user. Severalexamples of automatic equipment discovery and equipment modeldistribution can be found in commonly owned U.S. patent application Ser.No. 16/844,328 filed Apr. 9, 2020, the entire disclosure of which hasbeen incorporated by reference herein.

Still referring to FIG. 5, processing circuit 506 is shown to include aprocessor 508 and memory 510. Processor 508 can be a general purpose orspecific purpose processor, an application specific integrated circuit(ASIC), one or more field programmable gate arrays (FPGAs), a group ofprocessing components, or other suitable processing components.Processor 508 is configured to execute computer code or instructionsstored in memory 510 or received from other computer readable media(e.g., CDROM, network storage, a remote server, etc.).

Memory 510 can include one or more devices (e.g., memory units, memorydevices, storage devices, etc.) for storing data and/or computer codefor completing and/or facilitating the various processes described inthe present disclosure. Memory 510 can include random access memory(RAM), read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Memory510 can include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures described in thepresent disclosure. Memory 510 can be communicably connected toprocessor 508 via processing circuit 506 and can include computer codefor executing (e.g., by processor 508) one or more processes describedherein. When processor 508 executes instructions stored in memory 510,processor 508 generally configures gateway device 302 (and moreparticularly processing circuit 506) to complete such activities.

Still referring to FIG. 5, gateway device 302 is shown to include anetwork interface, shown as communications interface 516. Communicationsinterface 516 can facilitate communications between gateway device 302and external systems, devices, or applications. For example,communications interface 516 can be used by gateway device 302 tocommunicate with client device 304 (e.g., a tablet, a laptop computer, asmartphone, a desktop computer, a computer workstation, etc.),monitoring and reporting applications, enterprise control applications,remote systems and applications, and/or other external systems ordevices for allowing user control, monitoring, and adjustment to BMS 300and/or gateway device 302.

Communications interface 516 can include wired or wirelesscommunications interfaces (e.g., jacks, antennas, transmitters,receivers, transceivers, wire terminals, etc.) for conducting datacommunications with client device 304 or other external systems ordevices. In various embodiments, communications conducted via interface516 can be direct (e.g., local wired or wireless communications) or viaa communications network (e.g., a WAN, the Internet). Communicationsinterface 516 can conduct communication using a variety of networkprotocols (e.g., BACnet MS/TP, BACnet IP, MODbus, etc.). In variousembodiments, communications can be conducted over various network types(e.g., a cellular network, Wi-Fi network, ZIGBEE network, etc.). Forexample, communications interface 516 can include an Ethernet card andport for sending and receiving data via an Ethernet-based communicationslink or network. In another example, communications interface 516 caninclude a Wi-Fi transceiver for communicating via a wirelesscommunications network. In another example, communications interface 516can include cellular or mobile phone communications transceivers. In oneembodiment, communications interface 516 is a power line communicationsinterface and/or an Ethernet interface. In some embodiments, clientdevices 304 can communicate directly to gateway device 302 viacommunications link 516 without going through cloud platform 324. Forexample, a user may be able to access gateway device 302 using local UI512 via communications interface 516.

In some embodiments, the above network interfaces are components ofcommunications interface 516. In some embodiments, the networkinterfaces require external network adapters to facilitate communicateover various networks. The external network adapters may be detachablenetwork adapters. For example, the external network adapters may be USB“dongles” configured to provide network connectivity over USB toconnected devices. Gateway device 302 can be configured to automaticallyoperate a network adapter that is attached. The detachable externalnetwork adapters can connect to gateway device 302 via communicationsinterface 516. For example, an external Wi-Fi adapter may connect toWi-Fi client 690 shown in FIG. 6 of communications interface 516.

Referring now to FIG. 6, a block diagram of a gateway device 602 ingreater detail is shown, according to an exemplary embodiment. Gatewaydevice 302 may include all or some of the features and components ofgateway device 602. For example, cloud client 514 of gateway device 302can include IoThub/MQTT Client 694 and cloud connector 696. Data accesslayer 620 may include objects such as ORE framework 604, core assets622, discovery module 640, dictionary 648, OS API 656 etc. OS 524 ofgateway device 302 can include some or all of the components of OS 624.For example, OS 624 is shown to include various components such as filesystem 660, and Uboot 644, among others. In some embodiments, system busdatalink 526 shown in FIG. 5 may be a part of communications interface616.

Still referring to FIG. 6, communications interface 616 is shown toinclude cellular module 686, Wi-Fi access point (AP) 688, Wi-Fi client690, and Ethernet/IP module 692. In some embodiments, gateway device 302is configured with network adapters as components of communicationinterface 616. Communications interface 616 can include a Wi-Fi client690 and Wi-Fi access point (AP) 688 for communicating via a wirelesscommunications network. Communications interface 616 can includecellular or mobile phone communications transceivers, shown as cellularmodule 686 for communicating directly via a cellular network.Communications interface 616 can include Wi-Fi access point (AP) 688 andWi-Fi client 690. Wi-Fi AP 688 may be used by client devices to connectto gateway device 302. Wi-Fi client 690 may be configured to connectgateway device 602 to a cloud platform. In one embodiment,communications interface 616 includes a power line communicationsinterface and/or an Ethernet interface, shown as Ethernet/IP 692. Insome embodiments, MS/TP connection 684 is a component of communicationsinterface 616. MS/TP connection 684 can facilitate communication betweengateway device 602 and building equipment on a system bus. In someembodiments, MS/TP connection 684 may include some or all of thefeatures of system bus datalink 526 of FIG. 5.

Communications interface 616 of gateway device 602 allows configuringand operating building equipment of BMS 300 that may each operate onvarious and possible distinct networks all from a single gateway device.The single gateway can eliminate the need for intermediate controllersassociated with specific networks that handle only building equipment onthat network. Gateway device 302 can also eliminate the need to connectall building equipment over a wired interface as it combines both awired and wireless MS/TP connection interface in a single device.

Referring now to FIGS. 15A and 15B, block diagrams of a communicationsinterface for a BMS 1500 are shown, according to exemplary embodiments.Communications interface 1516 may include some or all components ofcommunications interfaces 516 and 616. Communications interface 616 mayconnect to external, detachable network adapters. The externaldetachable network adapters may be configured to connect to and/orreplace one or more of cellular 686, Wi-Fi client 690, and Ethernet/IP692 shown in FIG. 6. The detachable network adapters can includecellular adapter 1538, Wi-Fi adapter 1540 and Ethernet adapter 1542. Insome embodiments, the external network adapters are connected tocommunications interface 1516 via wired connections such as USBconnections. In some embodiments, communications interface 1516 may alsoconnect to an external detachable network adapter configured to operateover a ZIGBEE network. In some embodiments, each detachable networkadapter is configured to provide connectivity over a single wirelessnetwork. In some embodiments, a detachable network adapter may providewireless connectivity over multiple wireless networks (e.g., Wi-Fi,cellular, Zigbee, etc.).

Detachable network adapters allow gateway device 302 to function withover networks in the local region of the BMS which may haveregional-specific network protocols. The same gateway device 302 canoperate in various regions with independent network protocols byswapping a detachable network adapter configured to operate in Region Awith another detachable network adapter configured to operate in RegionB. In some embodiments, the detachable network adapters are installed bya local installer or user. For example, the cellular adapter 1538 can beattached to communications interface 1516 by an installer of the BMS.Cellular adapter 1538 may be preconfigured to operate according toregional regulations and protocols that apply to the BMS. Cellularadapter 1538 can be included on a separate device that is configured toconnect with communications interface 1516 and operate automatically. Insome embodiments, one or more of the network adapters can be included ascomponents of communications interface 1516. For example, referringspecifically to FIG. 15B, Ethernet adapter 1542 can be a component ofcommunications interface 1516.

In some embodiments, communications interface 1516 is connected to justa single network adapter. For example, communications interface 1516 canbe connected to only Ethernet adapter 1542. In some embodiments,communications interface 1516 can be connected to a plurality of networkadapters. For example, communications interface 1516 can includeEthernet adapter 1542 and Wi-Fi adapter 1540. In some embodiments,communications interface can include cellular adapter 1538, Wi-Fiadapter 1540, and Ethernet adapter 1542. It should be understood bythose of ordinary skill in the art that any combination of networkadapters may be used by gateway device 302. In some embodiments, gatewaydevice 302 is connected to a plurality of network adapters, and a user,either via local UI 512 or cloud platform 324 can direct gateway device302 to use a specific network adapter. Any network not selected may bedisabled. In some embodiments, the Wi-Fi AP 688 may still operate toallow a user to connect directly to the gateway device despite Wi-Fiadapter 1540 being disabled. In some embodiments, a gateway device, suchas gateway device 302, automatically chooses a network adapter tooperate over. In some embodiments, there may be a pre-installedhierarchy. For example, gateway device 302 can be configured to operateover Ethernet, then Wi-Fi, then cellular in that order. Depending onwhich detachable network adapters are connected to communicationsinterface 1516, gateway device can operate them in order of priority. Insome embodiments, the hierarchy may be set by a user. Still in otherembodiments gateway device 302 operates over a chosen network adapterand automatically switches to another network adapter when theconnection provided by the chosen network adapter fails.

In some embodiments, gateway device 302 can communicate with via acommunications interface, such as communications interface 1516 cloudplatform 324 over Ethernet adapter 1542 while communicating with clientdevices 1504 via Wi-Fi adapter 1540 and/or cellular adapter 1538. Insome embodiments, client devices 1504 connect to gateway device 302 viacloud platform 1524 as shown in FIGS. 15A and 15B. Still in otherembodiments client devices 1504 connect to gateway device 302 directlythrough wireless connection 1546. For example, referring again to FIG.6, clients devices can connect to gateway device 302 via Wi-Fi AP 688while gateway device 302 is communicating to cloud platform 324 via adifferent network interface (e.g., Ethernet, cellular, etc.).

Referring now to FIG. 16, a block diagram of a BMS which can be used tomonitor and control the building and HVAC system of FIGS. 1-2 is shown,according to an exemplary embodiment. BMS 1600 may include some or allof the features of BMS 300, as described with reference to FIGS. 3-7.For example, BMS 1600 is shown to include gateway device 302, cloudplatform 324, Wi-Fi adapter 1604, system bus 330, wireless system bus332 and building equipment connected via the system buses to gatewaydevice 302. BMS 1600 illustrates an example BMS that uses Ethernetconnection 326 to connect gateway device 302 to cloud platform 324.Gateway device 302 can communicate building data from the connectedbuilding equipment (e.g., chiller 314, chiller 316) to cloud platform324 via Ethernet connection 326. In some embodiments, Ethernetconnection 326 connects gateway device 302 to cloud platform 324 via anintermediate external cell modem 1602. Ethernet connection 326 can beconfigured by local UI 512.

Still referring to FIG. 16, client devices 304 may connect with gatewaydevice 302 over Wi-Fi, using for example Wi-Fi adapter 1604, even whilegateway device 302 is communicating with cloud platform 324 usingEthernet 326 may still connect to gateway device 302 via a Wi-Fi adapter1604 and/or the Wi-Fi AP 688 shown in FIG. 6 as a component ofcommunications interface 616. In some embodiments, BMS 1600 furtherinclude other network adapters connected to gateway device 302 (e.g., adetachable cellular adapter, etc.). In some embodiments, the networkadapters are detachable network adapters than be swapped in and out by auser and/or installer to provide gateway device 302 with the ability tocommunicate over additional networks. In some embodiments, Wi-Fi adapter1604 and and/or any other network adapters not being used to communicatebuilding data to cloud platform 324 are disabled while Ethernetconnection 326 is active. In some embodiments, Ethernet connection 326connects directly to Ethernet/IP client 646. In some embodiments,Ethernet connection 326 connects to a detachable Ethernet adapter, shownas Ethernet 542 in FIG. 15A.

Referring now to FIG. 17, a block diagram of a BMS which can be used tomonitor and control the building and HVAC system of FIGS. 1-2 is shown,according to an exemplary embodiment. BMS 1700 may include some or allof the features of BMS 300, as described with reference to FIGS. 3-7.For example, BMS 1700 is shown to include gateway device 302, cloudplatform 324, Wi-Fi adapter 1604, system bus 330, wireless system bus332, and building equipment connected via the system buses to gatewaydevice 302. BMS 1700 illustrates an example BMS that uses Wi-Fi adapter1604 to facilitate communication of building data from gateway device302 to cloud platform 324. In some embodiments, Wi-Fi adapter 1604 is adetachable Wi-Fi adapter. For example, Wi-Fi adapter 1604 may be a USBWi-Fi dongle configured to provide Wi-Fi connection to connecteddevices.

In some embodiments, Wi-Fi adapter 1604 is connected to external cellmodem 1602. External cell modem 1602 can then connect to cloud platform324 via cell network 1608. In some embodiments, multiple gateway devicesof a BMS can connect to a single external cell modem 1602. Using Wi-Fiadapter 1604 and Wi-Fi client 690 (shown in FIG. 6), gateway device 302can communicate to cloud platform 324 wirelessly via external cell modem1602 and cell network 1608. In some embodiments, gateway device 302 canuse Wi-Fi client 690 to communicate with cloud platform 324 while stillallowing client devices 304 to communicate to gateway device 302 overWi-Fi AP 688. In some embodiments, the Ethernet and cell adapterinterfaces are disabled while the Wi-Fi interface is in use.

Referring now to FIG. 18, a block diagram of a BMS which can be used tomonitor and control the building and HVAC system of FIGS. 1-2 is shown,according to an exemplary embodiment. BMS 1800 may include some or allof the features of BMS 300, as described with reference to FIGS. 3-7.For example, BMS 1800 is shown to include gateway device 302, cloudplatform 324, Wi-Fi adapter 1604, cell adapter 1802, system bus 330,wireless system bus 332, and building equipment connected via the systembuses to gateway device 302. BMS 1800 illustrates an example BMS thatcommunicates building data directly from gateway device 302 to cloudplatform 324 without intermediate external cell modem 1602. BMS 1800 isshown to include gateway device 302 connected to cell adapter 1802. Celladapter 1802 can be a detachable cellular adapter such as a directon-board cell modem USB dongle with a SIM card configured to providecellular internet connectivity to cloud platform 324. In someembodiments, cellular adapter 1802 includes a remote antenna. Gatewaydevice 302 can be configured to operate cellular adapter 1802automatically. Cell adapter 1802 can be configured via local UI 512 ofgateway device 302.

Referring now to FIG. 19, a flow chart illustrating process 1900 foroperating gateway device 302 with detachable network adapters is shown,according to an exemplary embodiment. Process 1900 can be performed byone or more components of BMS 300. In some embodiments, process 1900 isperformed by gateway device 302. Process 1900 is shown to includeproviding a gateway device to a BMS (step 1902). Multiple gatewaydevices may be provided to a single BMS. Each gateway device can beconnected to distinct sets of building equipment. The gateway devicescan connect to building equipment of the BMS over a wired or wirelessMS/TP bus. Process 1900 is shown to include installing a detachablenetwork adapter to gateway device 302 (step 1904). In some embodiments,multiple detachable network adapters may be connected to gateway device302. The detachable network adapters may connect to gateway device 302via USB. In some embodiments the detachable network adapters eachconnect gateway device 302 to various networks. For example, adetachable Wi-Fi adapter, a detachable cellular adapter, and adetachable Ethernet adapter may each individually or any combinationthereof be connected to gateway device 302. In some embodiments, asingle detachable network adapter may facilitate communication over aplurality of networks. The detachable network adapters may be providedby a local user and/or installer. The detachable network adapters may bepre-configured to operate according to the geographic region's networkregulations. Accordingly, gateway device 302 can operate in variousregions by being connected to various detachable network adapterswithout having to modify gateway device 302 itself. For example, RegionA may operate over a 4G network while Region B may operate over a 5Gnetwork. The same gateway device may operate in either region by simplybeing connected to a detachable network adapter pre-configured for thatregion.

Process 1900 is shown to include collecting building data from buildingequipment (step 1906). The building data may include equipment models,BACnet value objects, BACnet point objects, view definitions, COV data,and/or any other data available from building equipment. The gatewaydevice may collect the data over a wired and/or wireless system bus. Thesystem bus may be an MS/TP system bus using the BACnet MS/TP protocol.

Process 1900 is shown to include sending the building data to acloud-based platform using the attached network adapter(s) (step 1908).Gateway device 302 may stream the collected data to cloud platform 324.In some embodiments, gateway device 302 stores the collected data in alocal buffer and sends it periodically. In some embodiments withmultiple network adapters attached to gateway device 302, gateway device302 may send the building data over a single network selected by a user.For example, a user may select a network to use via local UI 512. Insome embodiments, the user may select the appropriate network via cloudplatform 324.

Data Access Layer

Referring again to FIG. 5, components included in memory 510 may includelocal UI 512, cloud client 514, capability provider (CP) 518, dataaccess layer 520, and OS 524. Local UI 512 may allow a user to controlbuilding equipment connected to gateway device 302. In some embodiments,local UI 512 may generate a web interface (e.g., a webpage) fordisplaying building data (e.g., equipment model templates, viewdefinitions, data control templates, etc.) to a user. An example of aninteractive web interface that can be generated by local UI 512 based ona stored view definition and/or equipment list is described in detail inU.S. patent application Ser. No. 15/146,660 titled “HVAC EquipmentProviding a Dynamic Web Interface systems and Methods” and filed May 4,2016, the entire disclosure of which is incorporated by referenceherein. CP 518 may be an application configured to facilitatecommunication between local UI 512 and cloud client 414 with data accesslayer 520.

Still referring to FIG. 5, gateway device 302 is shown to include a dataaccess layer 520. In some embodiments, data access layer 520 iscomprised of various objects shown in FIG. 6 (e.g., data model 630,point mappers 634, equipment mappers 636, protocol engine 642, etc.).Referring again to FIG. 5, data access layer 520 can be configured toperform the equipment detection and data gathering operations describedabove. Data access layer 520 can be configured to identify buildingequipment (e.g., chiller 314, chiller 316, CV TRU 318) in BMS 300 andgenerate or obtain equipment models for the building equipment. Forexample, data access layer 520 can discover and collect data from MS/TPcoordinator 306 (and associated building devices on wireless system bus332), CV RTU 318, IO module 320, and thermostat controller 334. Dataaccess layer 520 can also discover data points provided by the buildingequipment and obtain values for the data points (e.g., building data)from the equipment.

In some embodiments, data access layer 520 can sign up or subscribe to achange in value (COV) of the change counter attribute of active nodetable 528. In some embodiments, active node table 528 is a part of dataaccess layer 520. When a change to active node table 528 occurs, systembus datalink 526 can provide a COV notification to data access layer520. In response to receiving the COV notification, data access layer520 can read active node table 528. Data access layer 520 can use theinformation from active node table 528 to identify building equipmentconnected to gateway 302 and generate a list of identified devices(e.g., equipment list). The equipment list can be stored in data accesslayer 520 and/or provided to cloud client 514 to be pushed to cloudplatform 324.

In some embodiments, gateway device 302 can collect and send COV data tocloud platform 324. Throughout this disclosure COV data may also bereferred to as “telemetry data.” Data access layer 520 can receive fromcloud platform 324 a subscription list for the building equipmentidentified in the equipment list. The subscription list may be includedas part of a device twin generated by cloud platform 324. The devicetwin is explained in further detail below with reference to FIG. 10. Thesubscription list may include a list of bound properties (e.g., valueobjects, point objects, etc.) for building equipment in BMS 300 that thecloud platform 324 requests data for. Data access layer 520 may sign upor subscribe to a COV in the subscription list. An example of asubscription list may be found in Appendix A. When a change to boundproperty occurs, a COV notification can be provided to data access layer520. In response to receiving the COV notification, data access layer520 can read the bound property and post a sample of the bound propertyto cloud platform 324.

In some embodiments, data access layer 520 can provide the collecteddata to capability provider 518 for use in presenting the data to a user(e.g., via local UI 512) or pushing the data to cloud platform 324(e.g., via cloud client 514). Capability provider 518 can be configuredto function as a feature server for gateway device 302. Capabilityprovider 518 can be connected to data access layer 520, cloud client514, and local UI 512 and can process the inputs and outputs of gatewaydevice 302 (e.g., both device- and user-oriented). Capability provider518 can interact with cloud platform 324 to serve various features ofcloud platform 324 to gateway device 302. Features of cloud platform 324served by capability provider 518 can include, for example, time series,alarms, schedules, write property, data model, system settings, andsoftware update. Other features of cloud platform 324 served bycapability provider 518 may include interlock, data share, audit, andfault detection and diagnostics (FDD). The features and functionality ofcloud platform 324 are described in greater detail below. Several ofthese features are described further in U.S. patent application Ser. No.16/844,328 filed on Apr. 9, 2020 the entire disclosure of which has beenincorporated by reference herein.

Still referring to FIG. 5, data access layer 520 may receive a requestfor a view definition from local UI 512. The view definition mayidentify a set of attributes for a particular device that are core tothe functionality of the device. Each device or type of device in BMS300 may have a different view definition. For example, the viewdefinition for a chiller controller may identify the chiller outlettemperature as an important data point; however, the view definition fora valve controller may not identify such a data point as important tothe operation of the valve. In some embodiments, the view definition fora device identifies a subset of the data objects defined by theequipment model for the device. Local UI 512 may use the view definitionto dynamically select a subset of the stored data objects for inclusionin a web interface (e.g., a webpage) generated by local UI 512.

In some embodiments, view definitions for all the devices in BMS 300 arestored within gateway device 302. In other embodiments, view definitionscan be stored in the devices themselves (e.g., within thermostatcontrollers, RTUs, etc.). In some embodiments, view definitions arestored in cloud platform 324. In some embodiments, the view definitionfor a device is a component of the device's equipment model and isprovided to gateway device 302 by connected devices along with theequipment models. For example, devices connected to system bus 330and/or wireless system bus 332 can provide their own view definitions togateway device 302.

If a device does not provide its own view definition, gateway device 302can create or store view definitions for the device. If the viewdefinition provided by a particular device is different from an existingview definition for the device stored in gateway device 302, the gatewaydevice's view definition may override or supersede the view definitionprovided by the device. In some embodiments, the view definition for adevice includes the device's user name and description. Accordingly, theweb interface generated by local UI 512 can include the device's username and description when the web interface is generated according tothe view definition.

Equipment Model Generation

Referring now to FIG. 7, a sequence diagram illustrating a process 700for automatically discovering and interacting with equipment in abuilding management system that does not have a pre-existing equipmentmodel, according to an exemplary embodiment. Gateway device 302 of BMS300 can automatically discover new equipment connected via system busdatalink 526 to system bus 330 and/or wireless system bus 332 asdiscussed above with reference to data access layer 520. Advantageously,the equipment discovery can occur automatically (e.g., without useraction) and without requiring the equipment to be placed in discoverymode or sending a discovery command to the equipment. An equipment modelcan be composed of equipment template and a view definition associatedwith a given MS/TP device. Some devices lack pre-installed equipmentmodels, and process 700 can generate equipment models for the gatewaydevice 302 to operate the devices with. Process 700 can be performed byone or more components of BMS 300 to automatically discover buildingequipment on system bus 330 and wireless system bus 332. For example,process 700 can be performed by various components of gateway device 302(e.g., user interface (UI) 702, capability provider (CP) 704, a dataaccess layer 706, device object 708, FDEV 710, system bus 712, BACnetMS/TP device 754) and/or parts of the total BMS 300 system such as tech714.

Process 700 is shown to include tech 714 installing a BACnet MS/TPdevice on the system bus 712 (step 716). The BACnet MS/TP device 754 maybe a third-party controller, third-party RTU controller and/or any otherBACnet device that does not have an equipment model for gateway device302 to download. The BACnet MS/TP device 754 may be an MS/TP masterdevice. System bus 712 can be a wired MS/TP bus such as system bus 330and/or wireless such as wireless system bus 332. System bus 712 connectsto gateway device 302 and allows gateway device 302 to communicateand/or control building equipment connected to system bus 712. Systembus 712 can send an object startup message to FDEV 710 (step 718). FDEV710 may be a part of data access layer 520 of gateway device 302. FDEV710 can then communicate with device object 708 to“handle_special_request” (step 720) and device object 708 can send amessage to initiate discovery back to FDEV 710 (step 722). In someembodiments, process 700 may also include polling a connected MS/TPcoordinator such as MS/TP coordinator 306 to identify new MS/TP deviceson a wireless MS/TP bus when one is used. FDEV 710 can then read theobject list of BACnet MS/TP device 754. The object list may include thelist of all BACnet exposed objects (e.g., value objects, point objects,etc.) BACnet MS/TP device 754 chooses to make available. The objects mayinclude Analog Inputs, Analog Outputs, Analog Values, Binary Inputs,Binary Outputs, Binary Values, Multi-State Inputs, Multi-State Outputs,and Multi-State Values. For some devices such as JCI BACnet equipment,FDEV 710 may read the object list by sending a “GET_DEVICE_TREE” commandto BACnet MS/TP device 754 instead, and receive an object list composedof additional objects not made available using the read command. FDEV710 then accepts the object list from BACnet MS/TP device 754 (step726).

Process 700 is shown to include FDEV 710 automatically discoveringBACnet device(s) using the object list passed to it (step 728). Thisprocess can include reading the metadata for the objects from BACnetMS/TP device 754 (step 730). FDEV 710 can read the “object_list_ATTR”reply from BACnet MS/TP device 754 (step 732) and cache the metadata,build a BACnet device view definition, and build a BACnet equipmentmodel template (step 936) based on the BACnet objects exposed by theBACnet MS/TP device 754. The view definition may be automaticallygenerated using the object list of BACnet MS/TP device 754. The BACnettemplate can be populated with metadata from the BACnet device, or withpre-defined values based on the data type. The creation of a BACnet viewdefinition and equipment model template is explained further below withreference to FIG. C.

FDEV 710 then ensures the read process 732 is complete (step 738) andinforms device object 708 accordingly (step 740). Device object 708 canthen send to data access layer 706 a field device registration (step742). data access layer 706 can register the device in the data modelmanager (DMM) (step 744) which may involve reading the“Device_list_ATTR” from device object 708 (step 746) and receiving aresponse (step 748). This process is explained in further detail belowwith reference to FIG. C. The device list may contain all devices fromsystem bus 712, be they connected over a wired or wireless MS/TP bus,that have been mapped to the system. Data access layer 706 can then sendan updated device list to CP 704 (step 750) which can pass it to UI 702(step 752).

Equipment Model Discovery

Referring now to FIG. 8, a sequence diagram illustrating process 800 forproviding a view definitions and equipment templates from a BACnetdevice to a gateway device is shown, according to an exemplaryembodiment. Process 800 can be performed by one or more components ofBMS 300. For example, process 800 can be performed by various componentsof gateway device 302 (e.g., data module manager (DMM) 856, data accesslayer 806, template hash 858, FDEV 810, etc.) and BACnet MS/TP device854. In some embodiments, process 800 is an alternative to process 700.Process 700 is shown to include components of gateway device 302collecting creating view definitions and equipment model templates forbuilding equipment (e.g., BACnet devices) without pre-existing ones andstoring them and/or sending them to cloud platform 1000. In someembodiments, process 800 is an equivalent process for BACnet devicesthat have pre-existing view definitions and equipment model templates,such as SMART equipment devices manufactured by JCI.

Similar to process 700, process 800 may involve FDEV 810 sending a fielddevice registration message to data access layer 806 (step 842), andfurther includes data access layer 806 registering the device to DMM 856(step 844). Process 800 is shown to include DMM 856 requesting todownload a view definition from BACnet MS/TP device 854. BACnet MS/TPdevice 854 can send the view definition to DMM 856 (step 862). DMM 856is shown to then request to download the equipment model template fromBACnet MS/TP device 854 (step 864) and BACnet MS/TP device 854 canrespond by sending its pre-configured equipment model template (step866). Each equipment model template may define a set of propertiesassociated with a given device, and can be populated with metadata thatis read from BACnet MS/TP device 854. An example equipment modeltemplate can be found in Appendix B. In some embodiments, the componentsof gateway device 302 performing process 800 may upload the receivedview definitions and equipment templates to the cloud, such as cloudplatform 324. Cloud platform 324 may itself use the templates to fetchthe metadata to fill the equipment model template.

DMM 856 can then add the template to template hash 858 (step 868), whichcan return a templateKEY to DMM 856 (step 870). The template key canthen be cached in FDEV 810 (step 872), to be used to recall theequipment model template when needed.

Equipment Model Processes

Referring now to FIG. 13, a flowchart of a process 1300 forautomatically discovering and interacting with equipment in a buildingmanagement system is shown, according to an exemplary embodiment.Process 1300 can be performed by one or more components of BMS 300. Insome embodiments, process 1300 is be performed by gateway device 302.Process 1300 can be used to automatically discover devices communicatingon system bus 330 and/or wireless system bus 332. Once the devices havebeen discovered, process 1300 can be used to generate a user interface(e.g., a web interface) which provides information about the devices andallows a user to monitor and control the devices.

Process 1300 is shown to include monitoring an active node table for newnodes (step 1302). In some embodiments, step 1302 is performed bygateway device 302. For example, gateway device 302 can monitor activenode table 528 for new nodes. Each node in active node table 528 canrepresent a device communicating on system bus 330. In some embodiments,gateway device 302 monitors active node table 528 for new nodes bysubscribing to a change of value (COV) of a change counter attribute foractive node table 528. Each time a change to active node table 528occurs (e.g., a new device begins communicating on system bus 330), thechange counter attribute can be incremented by wired system bus datalink526. When the change counter attribute is incremented, wired system busdatalink 526 can report the COV to data access layer 520.

Still referring to FIG. 13, process 1300 is shown to include determiningwhether a new node is detected (step 1304). In some embodiments, step1304 is performed by gateway device 302. For example, data access layer520 of gateway device 302 can read active node table 528 in response toreceiving a COV notification indicating that active node table 528 hasbeen updated. Data access layer 520 can compare the data from activenode table 528 to a previous (e.g., cached) version of active node table528 to determine whether any new nodes have been added. If a new nodehas been added to active node table 528, data access layer 520 candetermine that a new node is detected (i.e., the result of step 1304 is“yes”) and process 1300 can proceed to step 1306. If a new node has notbeen added, process 1300 can return to step 1302.

Still referring to FIG. 13, process 1300 is shown to include usinginformation from the active node table to identify the new device (step1306). In some embodiments, step 1306 is performed by gateway device302. For example, gateway device 302 can use address information (e.g.,MAC addresses, network addresses, etc.) from active node table 528 tosend a request for information to a new MS/TP bus device. The requestcan include a request for an equipment model stored within the new MS/TPbus device and/or a request for point values provided by the new MS/TPbus device (e.g., a get device tree request). In response to therequest, the new MS/TP bus device may provide information that can beused to identify the device (e.g., device type, model number, types ofdata points, etc.). Gateway device 302 can identify the new MS/TP busdevice based on such information.

Still referring to FIG. 13, process 1300 is shown to include generatinga list of devices communicating on the system bus (step 1308). Thesystem bus may include system bus 330 and/or wireless system bus 332.Step 1308 can be performed by data access layer 520 using informationobtained from active node table 528 and/or information received fromidentified system bus devices.

Process 1300 is shown to include providing a user interface includingthe equipment list (step 1310). In some embodiments, step 1310 isperformed by cloud platform 324. In some embodiments, step 1310 isperformed by local UI 512 of gateway device 302. In some embodiments,local UI 512 uses a view definition for each device in the device listto determine which attributes of the devices to include in the webinterface. In some embodiments, local UI 512 generates a home page foreach type of equipment based on a home page view definition for theequipment type. The home page view definition can be stored in gatewaydevice 302 (e.g., in view definition storage). Other view definitionscan be stored in gateway device 302 or received from other devices atruntime.

Process 1300 is shown to include interacting with the system bus devicesvia the user interface (step 1312). Step 1312 can include accessing theequipment models for the system bus devices to obtain data values fordisplay in the user interface. In some embodiments, step 1312 includesreceiving input from a user via the user interface. The user input canchange an attribute of a device (e.g., device name, setpoint, devicetype, etc.) presented in the user interface. Gateway device 302 can usethe updated value of the device attribute to update the value in theequipment model for the device and/or to provide a control signal to thedevice.

Referring now to FIG. 14, a flowchart of a process 1400 forautomatically creating and using equipment models for system bus devices(e.g., devices connected to wired system bus 330 devices and/or wirelesssystem bus 332) is shown, according to an exemplary embodiment. Process1400 can be performed by one or more components of gateway device 302,as described with reference to FIGS. 3-5. In some embodiments, process1400 is performed by gateway device 302 when new building equipment isdetected on system bus 330 and/or wireless system bus 332.

Process 1400 is shown to include identifying a new device communicatingon the system bus (step 1402). Step 1402 can include using addressinformation (e.g., MAC addresses, network addresses, etc.) from activenode table 528 to send a request for information to a new system busdevice. The request can include a request for an equipment model storedwithin the new system bus device and/or a request for point valuesprovided by the new system bus device (e.g., a get equipment listrequest). In response to the request, the new system bus device mayprovide information that can be used to identify the device (e.g.,device type, model number, types of data points, etc.). Gateway device302 can identify the new system bus device based on such information.

Process 1400 is shown to include determining whether the new system busdevice includes an equipment model (step 1404). Some devices in BMS 300present themselves to gateway device 302 using equipment models. Anequipment model can define equipment object attributes, viewdefinitions, schedules, trends, and the associated BACnet value objectsthat may also compose an equipment model template (e.g., analog value,binary value, multistate value, etc.) that are used for integration withother systems. Some system bus devices store their own equipment models(e.g., CV RTU 218, thermostat controller 334). Other devices in BMS 300do not store their own equipment models (e.g., IO controller 320, thirdparty controller 322, etc.). Step 1404 can include sending a request foran equipment model to the new system bus device or reading a list ofpoint values provided by the new system bus device. If the new systembus device includes an equipment model, the system bus device maypresent an equipment model to gateway device 302 in response to therequest.

If the system bus device includes an equipment model (i.e., the resultof step 1404 is “yes”), gateway device 302 can read the equipment modelfrom the system bus device (step 1406). Since the equipment model isalready stored within the system bus device, the equipment model can beretained within the system bus device (step 1408). However, if thesystem bus device does not include an equipment model (i.e., the resultof step 1404 is “no”), gateway device 302 can automatically generate anew equipment model for the system bus device (step 1410). In someembodiments, gateway device 302 retrieves a list of point values (e.g.,BACnet objects) provided by the device and uses the list of point valuesto create a new equipment model for the device. The new equipment modelcan be stored within gateway device 302 (step 1412).

Process 1400 is shown to include interacting with the system bus devicevia the equipment model (step 1414). Step 1414 can include reading datavalues from the equipment model and writing data values to the equipmentmodel. If the equipment model is stored in the system bus device, step1414 can include interacting directly with the system bus device.However, if the equipment model is stored in gateway device 302, step1414 can include interacting with gateway device 302. Gateway device 302can then interact with the system bus device. Gateway device 302 canprovide a user interface for any system bus device using the equipmentmodels stored within the wired system bus devices and/or the equipmentmodels created by gateway device 302. In some embodiments, gatewaydevice 302 stores a view definition for each type of equipment connectedvia system bus 330 and uses the stored view definition to generate auser interface for the equipment.

Cloud Client

Referring again to FIG. 5, gateway device 302 is shown to include cloudclient 514. Cloud client 514 can be configured to interact with bothcapability provider 518 and local UI 512. Cloud client 514 serves as thebridge between gateway device 302 and cloud platform 324. Data passed tocloud client 514 may then be communicated to cloud platform 324 viacommunications interface 516. Communications interface 516 maycommunicate with cloud platform 324 over an internet connection (e.g.,BACnet IP, Ethernet, wired or wireless connection, etc.). Cloud client514 and communications interface 516 can communicate to cloud platform324 over HTTPS and/or MQTT protocol. Cloud client 514 can translategateway device concepts (e.g., Verasys concepts, Metasys concepts) intocloud concepts to allow gateway device 302 to communicate with cloudplatform 324. Cloud client 514 can also translate cloud concepts intogateway device concepts to allow data from cloud platform 324 to bereceived and processed by gateway device 302.

Referring now to FIG. 9, a block diagram illustrating cloud client 514in further detail is shown, according to an exemplary embodiment. BMS900 is shown to include building equipment 904 (e.g., chiller, CV RTU,thermostat controller, third-party controller, and/or any other BACnetMS/TP device), gateway device 902, and cloud platform 924. Buildingequipment 904 can send building data (e.g., equipment models, valueobjects, point values, and/or any other data/points exposed by thebuilding equipment) to gateway device 302 via a BACnet MS/TP protocol.Gateway device 302 may pass the data in MUDAC 906, object layer 908 andcapability provider 910. In some embodiments, MUDAC 906 and object layer908 are the same object. The building data then pass to cloud client912.

Cloud client 912 can be configured to interact with cloud platform 924.In some embodiments, cloud client 912 includes a feature server client,shown as CP client 914, a cloud connector 916, a server deviceprovisioning software development kit (SDK) 918, and a library thatencapsulates an internet-of-things (IoT) hub SDK with a data platformwrapper, shown as IoT hub client 920. Cloud connector 916 can beconfigured to interact with both capability provider 910 via CP client914 and IoT hub client 920. Cloud connector 916 can translate gatewaydevice concepts (e.g., Verasys concepts) into cloud concepts to allowgateway device 302 to communicate with cloud platform 924. Cloudconnector 916 can also translate cloud concepts into gateway deviceconcepts to allow data from cloud platform 924 to be received andprocessed by gateway device 302. Cloud client 912 can be configured tounderstand the endpoints, APIs, and other services provided by cloudplatform 324 and can be configured to communicate with cloud platform324. In some embodiments, cloud client 912 is configured to exchangemessages with cloud platform 324 via communications interface 922 usingthe native messaging format of cloud platform 324 (e.g., JSON).

Cloud Platform

Referring now to FIG. 10, a cloud platform 1000 is shown, according toan exemplary embodiment. Cloud platform 1000 may include some or all ofthe features of cloud platforms 324 and 724, as described above withreference to FIGS. 3-7. Cloud platform 1000 may be accessed by varioususers 1030 (e.g., enterprise users, mechanical contractors, cloudapplication users, etc.) via control applications. Some users can accessand interact with gateway device 302 directly via client devices (e.g.,via a UI provided by gateway device 302), whereas other users caninteract with cloud platform 1000 (e.g., via a UI provided by cloudplatform 1000, for example control application CED/CSD event hub 1024).The features of cloud platform 1000 and gateway device 302 are describedin greater detail below. Cloud platform 1000 receives data from gatewaydevice 302 and/or processes the data to provide a building data outputand sends the data and the output to a control application, such asCED/CSD event hub 1024 in a format that it can accommodate to allow auser to operate the BMS remotely.

Cloud platform 1000 can include a variety of cloud-based services and/orapplications (e.g., APIs) configured to store, process, analyze, orotherwise consume the data provided by gateway device 302. For example,cloud platform 1000 may include cloud applications such as a heartbeatservice, telemetry (e.g., timeseries, COV, etc.) service, equipment listservice, account service, and/or other types of services. In addition tothe services (e.g., cloud applications) shown in FIG. 10, cloud platform1000 can include any of a variety of services configured to process,store, analyze, and perform other operations on the data provided bygateway device 302. For example, cloud platform 1000 can include anasset service, an entity service, an analytics service, an alarmservice, a command service, and/or other types of data platformservices. Cloud platform 1000 can be configured to provide the data andthe result of the various cloud applications (e.g., building dataoutput) to one or more control applications configured to allow a userto review the data and control the operation of the gateway device. Thecontrol applications may involve modifying a device twin of the gatewaydevice and/or viewing telemetry data and trends created based on thetelemetry data by cloud platform 1000. Several examples of a dataplatform which can be used as part of cloud platform 1000 are describedin detail in U.S. Provisional Patent Application No. 62/564,247 filedSep. 27, 2017, U.S. Provisional Patent Application No. 62/457,654 filedFeb. 10, 2017, U.S. patent application Ser. No. 15/644,519 filed Jul. 7,2017, U.S. patent application Ser. No. 15/644,560 filed Jul. 7, 2017,and U.S. patent application Ser. No. 15/644,581 filed Jul. 7, 2017, andU.S. patent application Ser. No. 16/844,328 filed Apr. 9, 2020. Theentire disclosure of each of these patent applications is incorporatedby reference herein.

Referring still to FIG. 10, gateway device 302 is shown to communicatewith IoT hub 1004. Gateway device 302 may send data to IoT Hub 1004using MQTTS streaming. IoT hub 1004 may be configured to sendcloud-to-device (C2D) messages to gateway device 302. IoT hub 1004 canbe configured to receive and translate the incoming data messagesprovided by gateway device 302. In some embodiments, IoT hub 1004performs various data transformations and other functions specific togateway device 302. For example, IoT hub 1004 can be configured tocreate entities for telemetry processor 1006 based on the equipment listand equipment model templates provided by gateway device 302. Theequipment list may identify all of the equipment connected with gatewaydevice 302, either directly or indirectly.

IoT hub 1004 and/or other components of cloud platform 1000 such astelemetry processor 1006 can provide plug & play functionality forgateway device 302 by automatically determining which values needtimeseries data. Cloud platform 324 can use the equipment list incombination with equipment model templates for the identified equipmentto determine which properties (i.e., data points, attributes, etc.) ofequipment to bind. Cloud platform 324 can then create timeseries for theidentified properties with telemetry processor 1006 and update the asubscription list. The timeseries may initially be empty, but can beupdated as data samples are collected from gateway device 302 and/orequipment. In some embodiments, cloud platform 324 updates the twinsubscription list to identify all of the properties that cloud platform324 is interested in receiving change-of-value (COV) updates fromgateway device 302 and/or equipment.

Gateway device is shown connected to device provisioning service 1034.Device provisioning service 1034 may be updated prior to installation ofgateway device 302 into BMS 300 with the device ID, ID scope, and keysassociated with gateway device 302. Device provisioning service 1034 maycreate the device in enroll gateway device 302 into a specific IoT hub.

IoT hub 1004 is connected to various event hubs and/or services,otherwise known as cloud applications, (shown as telemetry processor1006, heartbeat processor 1008, equipment list processor 1010, andaccount processor 1012), and CED/CSD event hub 1024. The gateway device302 sends all building data (e.g., equipment models, view definitions,COVs for subscribed properties and/or any exposed value and pointobjects of building equipment) it has collected on system bus 330 andwireless system bus 332 through the IoT hub 1004. IoT Hub 1004 routesall messages to the appropriate event hubs in cloud platform 1000 (e.g.,telemetry messages to telemetry processor 1006, heartbeat messages toheartbeat processor 1008, etc.). For example, gateway device 302 maysend a heartbeat message to IoT hub 1004, which can direct the heartbeatmessage to heartbeat processor 1008, which can process and send a signalto CED/CSD event hub 1024. The heartbeat message can also be sent toheartbeat auditor 1022 for storage. Files sent to IoT hub 1004 can beuploaded to the accounts storage container (e.g., services storageaccount 1014, D2C storage 1016, etc.). Any data received by an event hub(e.g., telemetry processor 1006, heartbeat processor 1008, etc.) cantrigger an automatic function to process the data. In some embodiments,the event hubs are associated with corresponding cloud objects (e.g.,template processor 1018, telemetry auditor 1020, heartbeat auditor 1022)for recording data. The processed data can be sent to CED/CSD event hub1024. In some embodiments, there are different functions for differentmessage types (e.g., heartbeat message, telemetry message, equipmentlist, etc.).

IoT hub 1004 can include components such as a file upload component, IoTdevice component, and message routing component. The file uploadcomponent may include a device diagnostic file and/or an equipment modeltemplate. The gateway device 302 may automatically upload an equipmentmodel template when it determines the equipment model template cannot befound on cloud platform 1000.

The IoT devices component can consist of all devices (e.g., BACnet MS/TPdevices) connected to gateway device 302 over system bus 330 andwireless system bus 332. The IoT devices component may be based on theequipment list built by gateway device 302 of all BACnet devices it hasdiscovered on system bus 330 and wireless system bus 332.

In some embodiments, cloud platform 1000 is configured to generate andmaintain a virtual “twin” for each gateway device 302 that sends data tocloud platform 1000. In some embodiments, IoT hub 1004 creates andmaintains the device twin. The twin may function as a virtualservice-side representation of a physical gateway device 302. Forexample, the twin for a given gateway device 302 may be a data object(e.g., a JSON object) that contains attributes indicating the state ofgateway device 302. The twin may contain desired properties and reportedproperties. The reported properties can represent the current state ofgateway device 302. The desired properties can represent desiredmodification made by a user through cloud platform 1000. For example, auser may input a desired modification to gateway device 302 throughcloud platform 1000, which can update the desired properties of thedevice twin of gateway device 302. Gateway device 302 can periodicallyread the device twin and adjust its local properties to reflect thedesired properties in the device twin. In some embodiments, gatewaydevice 302 can then update the reported properties in the device twin sothey match the desired properties. This can provide an indication to theuser through the cloud platform that the modification has been made. Insome embodiments, the updated device twin can be pushed to gatewaydevice 302. An example of a twin for a gateway device 302 is as follows:

{  “Reported”: [ ],  “Bound”: [ ],  “Revision”: “1”, “Hash”: “abc” }

Gateway device 302 can be configured to fill in the “Reported” field ofthe twin with information describing gateway device 302 (e.g., BASunits, time zone, etc.). It should be noted that the “Reported” field isdifferent from the equipment list, which is a separate file. An exampleof the information which can be specified in the “Reported” field is asfollows:

“Device Settings”: { “BAS Units Setting”: “IP”, “Time Zone Setting”:“Central” “Heartbeat Time Series ID”: “HB-TS” “Software Version”: 1.0 }

The “Bound” field of the twin can be filled in by cloud-based event hub(e.g., equipment list processor 1010, telemetry processor 1006, etc.) toindicate the properties of building equipment for which the event hubwants telemetry data. The cloud-based event hub may create a timeseriesfor the bound properties. The telemetry data may be a component of thebuilding data sent from gateway device 302 to cloud platform 1000. The“Bound” field can include the following information:

Bound: {[FQR ID, Time Series ID]} Organization ID

where the organization ID is used by event hubs to identify the customerassociated with gateway device 302. An example of a subscription list isprovided in Appendix C. If certain points in the “Bound: field are notphysically present, the gateway device 302 can send the “Non-Existent”points list cloud platform 1000, which can delete the non-existentpoints from the twin.

The “Revision” field of the twin may be incremented each time the twinis modified by either cloud platform 1000 or by gateway device 302. Bothgateway device 302 and cloud platform 1000 can update the “Revision”field of the twin each time a change is made. Both gateway device 302and cloud platform 1000 can also synchronize with the twin to ensurethat each has the most recent version of the information provided by thetwin. For example, gateway device 302 and cloud platform canperiodically read the twin and copy the information contained in thetwin if the version of the twin is more recent than the local version ofthe information. A sample of another device twin may be found inAppendix D.

Data Control Template Info

In some embodiments, the device twin may include properties useful tocontrol the data rate between gateway device 302 and cloud platform1000. The properties, referred to herein as data control properties, maybe modified by a user to control how much data is exchanged betweengateway device 302 and cloud platform 1000. The data control propertiesmay be passed to a gateway device as part of the desired propertiescontained in the device twin as explained above with reference to FIG.10. The data control properties may be a subset of the propertiesexchanged between gateway device 302 and cloud platform 1000 via thedevice twin. For example, data control properties may include atelemetry rate, a heartbeat rate, an equipment list update rate, asubscription list, a data compression setting, and a COV file uploadthreshold setting. The subscription list may include a fully qualifiedreference, a COV increment value, and a COV minimum time value. Datacontrol properties may include other properties passed as part of thedevice twin that control or modify the data rate between gateway device302 and cloud platform 1000.

Telemetry rate may be the rate at which COV data samples are posted fromgateway device 302 to cloud platform 1000. For example, a telemetry rateof 30 seconds may direct gateway device 302 to send COV update valuescollected from building equipment to cloud platform 1000 every 30seconds. Modifying telemetry rate can affect the number and rate ofmessages exchanged between gateway device 302 and cloud platform 1000.

Heartbeat rate may be the rate at which gateway device 302 postsheartbeat messages to the cloud. Heartbeat messages are explained infurther detail below with reference to FIG. 36.

The equipment list rate may be the rate at which the equipment listupdate message are posted from gateway device 302 to cloud platform1000. The equipment list, as explained above, informs the cloud ofdiscovered MS/TP devices connected to gateway device 302 via wiredsystem bus 330 and/or wireless system bus 332.

The subscription list may be the list of equipment and points (e.g.,BACnet point objects, value objects, etc.) that cloud platform 1000desires COV and/or other data for. The subscription list may contain afully qualified reference. The fully qualified reference may be areference to a specific piece of building equipment contained with theequipment list. In some embodiments, the subscription list propertywithin the device twin may include a COV increment. The COV incrementmay be the minimum amount of change in a subscribed points valuerequired to generate a COV sample to be sent to cloud platform 1000. Forexample, a thermostat controller may include a temperate object exposedto gateway device 302 and included in the subscription list by cloudplatform 1000. A device twin pushed to gateway device 302 may include aCOV increment value of 1 degree. Gateway device 302 can be configurednot to transmit a new value until the COV value is at least and/orgreater than the COV increment value.

The subscription list may also include a COV minimum time point. COVminimum time point may dictate the minimum amount of time that must passfrom when gateway device 302 sends a COV message to cloud-platform 1000before another COV message can be sent. In some embodiments, the COVsent at the end of the COV minimum time point is the most recent COV. Insome embodiments, gateway device 302 temporarily stores the COV valuesand sends them in groups based according to the COV minimum time point.

The data compression setting may be an option in the device twinindicating to gateway device 302 whether or not to compress or encodethe collected COV data samples before posting the data samples to cloudplatform 1000.

The COV file upload threshold setting may allow gateway device 302 toupload collected COV data samples as a file upload rather than MQTTand/or HTTPS streamed data if the COV data samples exceed a certainsize. In some embodiments, a BMS may have a lower telemetry rate datacontrol setting, and accordingly the COV samples data may exceed theMQTT and/or HTTPS threshold. In some embodiments, a gateway device maybe offline, and offline data storage of the gateway device may includecollected COV data that was not streamed to cloud platform 1000. Thecollected data can be uploaded as a file if larger than the COV fileupload threshold.

In some embodiments, data control properties included in the device twinmay be saved as a data control template. The data control template maybe stored in cloud platform 1000 and/or gateway device 302. The datacontrol template may be associated with a customer ID, an organization,a geographic location and/or other metadata related to the BMS. In someembodiments, a single data control template can be included in thedevice twin of multiple gateway devices in a BMS. In some embodiments, adata control template may be set as a default for a user and applyautomatically apply to all gateway devices connected to that user. Insome embodiments, a BMS may store multiple data control templates. Forexample, cloud platform 1000 may include a Wi-Fi data control template,a cellular data control template, and an Ethernet data control template.Cloud platform 1000 may automatically select and include in a devicetwin for a gateway device the data control template associated with thenetwork used by the gateway device to connect to cloud-platform 1000. Insome embodiments, a user may select the data control template to beapplied to a gateway device.

The data control template is useful for a BMS constrained by monthlyinternet or data services such as those connected over a cellularnetwork. Data control settings allow a user or contractor to dynamicallymodify and control the data rate between a gateway device and/ormultiple gateway devices and a cloud platform utilizing the existingdevice twin messaging features of the BMS.

Referring now to FIG. 20, a sequence diagram illustrating a data controltemplate update process 2000 is shown, according to an exemplaryembodiment. Process 2000 can be performed by one or more components ofBMS 300 to modify data control properties located within the device twinof a gateway device. For example, process 2000 can be performed by webUI 1028, IoT Hub 1004, D2C storage 1016, and gateway device 302. Thedata control template may be a component of a device twin stored incloud platform 1000 and/or gateway device 302. Certain properties in thedevice twin that control the data rate between cloud platform 1000 andgateway device 302 may be grouped together and saved as a data controltemplate. The data control template may be used to apply data controlsettings to a variety of BMS devices.

The data control template may control properties of the device twin suchas the telemetry rate, the heartbeat rate, the COV increment value, theCOV minimum threshold value, and/or other properties that affect thedata rate between gateway device 302 and cloud platform 1000. In someembodiments the data control template is populated with default datacontrol property values during device provisioning.

User 1030 may send a request to modify the data control template (2002).In some embodiments, the request may be to modify data control templatetied to a single gateway device. In some embodiments, the data controltemplate may be associated with multiple gateway devices. The userrequest may include altering the data control properties for all gatewaydevices associated with the data control template. The request may be toweb UI 1028. Web UI 1028 may be configured to fetch subscription lists,templates, equipment list, diagnostic information, and data controlproperties, and/or data control templates stored in D2C storage 10106and display such things to user 1030 for modification and control of theBMS. Web UI 1028 may pass the modification request to IoT Hub 1004 (step2004). In some embodiments, web UI may have already retrieved from D2Cstorage 1016 the data control template. In some embodiments, IoT hub1004 may request the data control template to be modified from D2Cstorage 1016 (step 2006) which may then provide the data controltemplate to IoT Hub 1004 (step 2008). IoT hub 1004 may generate a newdevice twin incorporating the modification to the data control template.The data control template may be one or more properties contained withina device twin.

IoT Hub 1004 may update the data control properties and generate anew/updated device twin for gateway device 302 (step 2010). In someembodiments, the updated properties are contained in the desiredproperties of the device twin. Gateway device 302 may receive and/orrequest the updated device twin from IoT hub 1004 (step 2012). In someembodiments, gateway device 302 may be configured to periodically pollIoT Hub 1004 to determine if the device twin has been updated. In someembodiments, the IoT Hub 1004 may push a new device twin to gatewaydevice 302 each one is created. Once gateway device 302 receives the newdevice twin it may then read the updated data control properties andupdate its local (e.g., reported properties) in accordance with the newdata control properties in the data control template.

Referring back to FIG. 10, cloud platform 1000 is shown to includetelemetry processor 1006. Telemetry processor 1006 can be configured toreceive building data generated by building equipment such as change ofvalue (COV) via gateway device 302. The telemetry data may be for boundproperties listed in the gateway device's twin. Telemetry processor 1006can be configured as a telemetry service to perform a variety oftelemetry processing operations. IoT Hub 1004 can then create timeseriesfor the identified properties with telemetry processor 1006 and updatethe twin subscription list (e.g., subscription list) and push theupdated twin. The timeseries may initially be empty, but can be updatedas data samples are collected from gateway device 302 and/or buildingequipment. In some embodiments, IoT hub 1004 updates the twinsubscription list to identify all of the properties that cloud platform1000 is interested in receiving change-of-value (COV) updates fromgateway device 302 and/or building equipment.

Gateway device 302 can evaluate the subscription list to identify one ormore properties specified by the twin. Gateway device 302 can thensubscribe to COV updates for any properties specified by the twin andunsubscribe from COV updates for any properties not specified by thetwin. When a COV for a subscribed property occurs, equipment can send aCOV notification to gateway device 302. The COV notification mayidentify the property for which a COV has occurred and may include thecurrent value of the property. In some embodiments, telemetry processor1006 is configured to perform some or all of the timeseries processingoperations described in U.S. patent application Ser. No. 15/644,519filed Jul. 7, 2017, U.S. patent application Ser. No. 15/644,560 filedJul. 7, 2017, U.S. patent application Ser. No. 15/644,581 filed Jul. 7,2017, and U.S. patent application Ser. No. 16/844,328 filed on Apr. 9,2020. The entire disclosure of each of these patent applications isincorporated by reference herein.

Telemetry Data Process

Referring now to FIG. 21, a sequence diagram illustrating a telemetrydata process 2100 is shown, according to an exemplary embodiment.Process 2100 can be performed by one or more components of BMS 300 tocollect and send telemetry data (e.g., change of value data) to cloudplatform 324. For example, process 2100 can be performed by gatewaydevice 302, and/or various components of cloud platform 324 (e.g., IoThub 1004, telemetry processor 1006, D2C storage 1016, and CED/CSD eventhub 1024, etc.).

When a point object in the bound point list generates telemetry data(e.g., COV data), gateway device 302 can receive the telemetry data andthe COV data to IoT hub 1004 as a device-to-cloud (D2C) message. Themessage may include the value of the bound point, and a timestamp.Gateway device 302 can then send the telemetry data to telemetryprocessor 1006. The telemetry data may include a telemetry ID, a valueas a string (e.g., the enumerated string), and a timestamp. telemetryprocessor 1006 may respond to gateway device 302 acknowledging receiptof the telemetry data. An example of a telemetry message may be found inAppendix E.

Heartbeat Telemetry

Referring now to FIG. 22, a sequence diagram illustrating process 2200for sending a heartbeat message is shown, according to an exemplaryembodiment. Process 2200 can be performed by various components of BMS300. For example. Process 2200 can be performed by gateway device 302,IoT hub 1004, heartbeat processor 1008, D2C storage 1016, web UI 1028,and CED/CSD event hub 1024. Process 2200 is shown to include gatewaydevice 302 sending a heartbeat message to IoT hub 1004 (step 2202).Gateway device may send the heartbeat message periodically. For example,gateway device may send a heartbeat message every 5 minutes, every 10minutes, etc. The heartbeat rate can be a point value found in thedevice twin. The rate can be modified by a user either through the localUI of gateway device 302 or web UI 1028. In some embodiments, theheartbeat rate is a component of a data control template, which canitself be a component of a device twin generated by cloud platform 324.

Process 2200 is shown to include IoT hub 1004 automatically triggeringheartbeat processor 1008 (step 2204). Heartbeat processor 1008 canupdate a heartbeat timestamp based on the latest heartbeat message andstore the updated timestamp in D2C storage 1016 (step 2206). Process2200 is shown to include D2C storage 1016 forwarding the heartbeatmessage to CED/CSD event hub 1024 (step 2208). In some embodiments, D2Cstorage 1016 can send the heartbeat message to heartbeat auditor 1022,shown in FIG. 10, for logging. Process 2200 is shown to include web UI1028 fetching the heartbeat timestamps from D2C storage 1016 anddisplaying the connection status (step 2210). Examples of a propertiesand property values contained in a heartbeat message reported by gatewaydevice 302 are as follows: An example heartbeat message may be found inAppendix F.

Property Example Value “Current Date and Time in UTC” 01/25/202014:34:20Z “CPU Usage (%)” “45” % “Memory Usage (%)” “30” % “EthernetInterface Status” “Enabled” “Wi-Fi Client Interface Status” “Enabled”“USB Cellular Interface Status” “Enabled” “Cell Signal Strength (%)”“45” % (optional if cell dongle is connected) “TMC signal strength (%)”“65” % (optional if MS/TP coordinator is connected) “Account ID”“Customer_8211.ABCD” -

Equipment List Upload and Subscription List Generation

Referring now to FIG. 11, a sequence diagram illustrating process 1100for providing a cloud platform with an equipment list from a BACnetdevice and providing a subscription list of bound properties based onthe provided information to a gateway device is shown, according to anexemplary embodiment. Process 1100 can be performed by one or morecomponents of BMS 300. For example, process 1100 can be performed bygateway device 302, IoT hub 1004, equipment list processor 1010, D2Cstorage 1016, CED/CSD event hub 1024 and BACnet device 1128.

Process 1100 is shown to include gateway device 302 sending an equipmentlist as a device to cloud (D2C) message to IoT hub 1004 (step 1102).Gateway device 302 may identify building equipment on system bus 330 andgenerate a report (e.g., equipment list) listing the identified buildingequipment. In some embodiments, the equipment list is in JSON format. Anexample equipment list can be found in Appendix G. Gateway device 302can periodically send the equipment list to the IoT Hub 1004. IoT hub1004 can be configured to automatically invoke a server function andpass the equipment list format to equipment list processor 1010 (step1104). Process 1100 is shown to include storing the new (e.g., updated)equipment list in D2C storage 1016 (step 1106). Equipment list processor1010 can be configured to retrieve from D2C storage 1010 all availableequipment templates to check for an equipment template for each buildingdevice (e.g., BACnet MS/TP device) in the new equipment list (step1108). If equipment lists are found for all building devices in the newequipment list, process 1100 can skip to step 1118. If an equipment listis not found, process 1100 is shown to include sending request for anymissing equipment templates to IoT Hub 1004 (step 1110).

In some embodiments, the equipment templates may only be sent fromgateway device 302 if requested by cloud platform 324. An equipment listmay contain a large number of building equipment and it may beprohibitive from a data use stand point to send equipment templates foreach piece of equipment every time an equipment list is provided tocloud platform 1000. In some embodiments to conserve data and avoidduplication of equipment templates, gateway device 302 may send theequipment list first and equipment list processor 1010 may be configuredto check D2C storage 1016 for equipment templates before requestinggateway device 302 to send them. In some embodiments, D2C storage 1016is associated with a customer ID and includes equipment templates forall building equipment previously connected to cloud platform 1000. Asingle building equipment template may associated with multiple piecesof building equipment. By first checking for pre-existing equipmentmodel templates cloud-platform 1000 ensures only a single equipmenttemplate is stored, avoiding duplicate meta data.

If an equipment template is not found, equipment list processor 1010 maythen request gateway device 302 to provide it (step 1110). IoT hub 1004can passes the request to gateway device 302 as a cloud-to-device (C2D)message (step 1112). Gateway device 302 can be configured to respondwith equipment files (e.g., JSON equipment files) and send them to IoThub 1004 (step 1114). The process for collecting missing equipmenttemplates from gateway device 302 is explained in greater detail belowwith reference to FIG. 12. Process 1100 is shown to include IoT hub 1004receiving the JSON template files (step 1114) and uploading theequipment templates to D2C storage 116 (step 1116).

Process 1100 is shown to include forwarding the new equipment list tothe CED/CSD event hub 1024 (step 1118). Equipment list processor 1010can be configured to use the equipment list in combination withequipment templates for the building devices determine which properties(i.e., data points, attributes, etc.) of equipment to subscribe to (step1120). The subscribed properties may also be referred to as boundproperties throughout this disclosure. Equipment list processor 1010 maygenerate telemetry data for the bound properties with a timeseriesservice (not shown). The subscription list can be used to update thedevice twin including a list of bound properties for gateway device 302to subscribe too based on the subscription list as an aspect of anupdated device twin sent to IoT hub 1004 (step 1122), as explained abovewith reference to the bound properties of the device twin. Process 1100is shown to include gateway device 302 receiving the updated device twin(step 1124) and gateway device 302 notifying a device 1128 (e.g., BACnetMS/TP device 754) of the new/updated subscription list (step 1126).

Template Upload

Referring now to FIG. 12, a sequence diagram illustrating a process 1200for uploading an equipment template from gateway device 302 to cloudplatform 1000 is shown, according to an exemplary embodiment. Process1200 can be performed by various components of BMS 300. For example,process 1200 can be performed by gateway device 302, IoT hub 1004, D2Cstorage 1016, template processor 1018, and CED/CSD event hub 1024. Insome embodiments, cloud platform 324 may determine it does not haveequipment model templates for all building equipment listed in theequipment list. Cloud platform 324 can request the missing equipmentmodel templates from gateway device 302.

Process 1200 is shown to include gateway device 302 receiving acloud-to-device (C2D) message from cloud platform 1000 requestinggateway device 302 to upload equipment template files (step 1202). Forexample, the C2D message is the C2D message sent in step 1112 of process1100. In some embodiments, equipment templates may only be uploaded whena request is sent. In some embodiments, gateway device 302 may upload anequipment template whenever it discovers new building equipment onsystem bus 330 and/or wireless system bus 332. Gateway device 302 can beconfigured to send the equipment template file to IoT hub 1004 (step1204). In some embodiments, the equipment template is sent as a JSONfile. Process 1200 is shown to include IoT hub 1004 uploading theequipment template file to D2C storage 1016 (step 1206). In someembodiments, equipment templates can be upload as a file directly to D2Cstorage 1016, bypassing IoT hub 1004. Process 1200 is shown to includeIoT hub 1004 acknowledge the successful upload to gateway device 302(step 1208).

The uploading of an equipment template to D2C storage 1016 mayautomatically trigger template processor 1018 to perform a serverfunction with the equipment template file (step 1210). Process 1200 isshown to include template processors 1018 updating the equipmenttemplate (step 1218). Template processor 1018 may request CED/CSD eventhub 1024 to provide update instructions (step 1214) and may receiveupdate instructions (1216). In some embodiments, template processor 1018may update the equipment template without requesting instructions fromCED/CSD event hub 1024.

Process 1200 is shown to include template processor 1018 saving theupdated template to D2C storage 1016 (step 1220). Template processor1018 can create and/or update the subscription list (e.g., subscriptionlist) in accordance with the newly received equipment template (step1222). Template processor 1018 can store the updated subscription listin D2C storage 1016 (step 1224). Process 1200 is shown to includetemplate processor 1018 updating the device twin with the subscriptionlist URL and SAS token. The modifying of the device twin to passconfiguration settings to gateway device 302 is explained in detailabove with reference to cloud platform 1000. Process 1200 is shown toinclude IoT hub 1004 notifying gateway device 302 of the newsubscription list (step 1228). In some embodiments, step 1228 can be apart of the device twin messaging interface implemented by cloudplatform 1000.

Time Synchronization

In some embodiments, gateway device 302 will not connect to cloudplatform 1000 until it has established a good time basis. Timesynchronization process 2300 can be configured to provide gateway device302 with the latest time in UTC format. Time synchronization process2300 is important to ensure the timestamps on building data collectedfrom gateway device 302 are not materially different from the actualtime the building data was received. Time synchronization process 2300is also used to ensure gateway device 302 has a secure connection to thecloud platform 1000 via HTTPS. In some embodiments, gateway device 302does not have a battery-powered clock. Accordingly, time synchronizationprocess 2300 may be used to ensure the device is not left with a poortime basis if unpowered for a period of time.

Referring now to FIG. 23, a flow chart of a time synchronization process2300 for synchronizing the time on the gateway device is shown,according to an exemplary embodiment. Time synchronization process 2300is shown to include a timer event initializing the process (step 2302).The timer event may be a first startup of gateway device 302 by a useror a startup after an extended unpowered state. In some embodiments, thetimer event may be initiated by a user, or automatically by cloudplatform 1000. Time synchronization process 2300 is shown to includechecking if a network time protocol (NTP) sync was successful (step2304). Gateway device 302 may include an NTP client which can use theNTP protocol to synchronize the system clock. NTP may synchronizedevices on a network to a coordinated universal time. In someembodiments gateway device 302 has a hardcoded default NTP serverprovided. In some embodiments, gateway device 302 receives its NTPconfiguration from an IoT hub component of cloud platform 1000. If NTPsynchronization fails at step 2304 then gateway device 302 will synctime via HTTP (no at step 2306). Gateway device 302 may sync time overHTTP by sending HTTP packet requests to a remote server that isconnected to gateway device 302. Gateway device 302 can periodicallydetermine if time has been synchronized over HTTPS and only send datawhen a good time basis is known. No data will be sent from gatewaydevice 302 if it is not able to retrieve a time.

If time synchronization is successful either at step 2304 or 2306,gateway device 302 may broadcast the time to all devices connected onthe system bus, including devices connected over the wired system bus330 and wireless system bus 332. Time synchronization process 2300 isthen shown to include gateway device 302 checking if it is connected toan IoT hub (step 2308). The IoT hub may be a part of cloud platform 324.If gateway device 302 is connected, then the time synchronizationprocess is complete (step 2316). If gateway device 302 is not connectedtime synchronization process 2300 is shown to include starting an IoThub connection (no at step 2310). Time synchronization process 2300 isshown to include retrieving the latest NTP configuration from the IoThub (step 2312). This step is optional, and in some embodiments gatewaydevice 302 may be configured with a hardcoded default NTP server. Timesynchronization process 2300 is shown to include configuring the NTPclient according to the latest NTP configuration information (step2314). Time synchronization process 2300 is shown to include completingthe time synchronization process (step 2316).

Firmware Update

Referring now to FIG. 24, a sequence diagram illustrating a firmwareupdate process 2400 for BMS 300 is shown, according to an exemplaryembodiments. Process 2400 can be performed by one or more components ofBMS to update the firmware of gateway device 302. For example, process2400 can be performed by web UI 1028, C2D storage 2402, IoT Hub 1004 andgateway device 302. C2D storage 2402 may be a component of a cloudplatform such as cloud platform 1000 for storing C2D messages. Process2400 is shown to include a new firmware being upload to C2D storage 1016from web UI 1028 (step 2404). In some embodiments, the firmware isuploaded by a user. Process 2400 is shown to include the web UI 1028selecting a device and updating the devices associated device twin(e.g., device twin, etc.) with the firmware URL and a shared accesssignature (SAS) token on IoT hub 1004 (step 2406). IoT hub 1004 can thennotify gateway device 302 of the new firmware through the updated devicetwin, as the gateway device 302 may periodically check the device twinas discussed above (step 2408). Gateway device 302 can then retired thelatest firmware from the C2D storage 1016 and download it (steps 2410and 2412). Gateway device 302 can then update the firmware locally (step2414). Gateway device 302 can report that the firmware has been updatedby altering the device twin (step 2416).

Referring back to FIG. 5, web UI 1028 can be configured to perform avariety of command and control operations. In some embodiments, web UI1028 is configured to send commands and control signals to gatewaydevice 302. The commands and control signals can then be used by gatewaydevice 302 to control system bus equipment of BMS 300. In someembodiments, web UI 1028 sends command messages as strings, getsresponse messages as strings, and stores the responses.

In some embodiments, web UI 1028 allows a user to command and controlthe equipment of BMS 300 by writing data values to gateway device 302.It should be noted that a local user of gateway device 302 can commandand control BMS 300 via a local user interface generated by gatewaydevice 302. However, remote users (e.g., technical support, a storemanager, an enterprise user, etc.) can command and control BMS 300 viaweb UI 1028. Web UI 828 can be configured to change any data valuesincluding setpoints, configuration parameters, schedules, and othertypes of data used by gateway device 302 and/or equipment.

In some embodiments, cloud platform 1000 is configured to maintain amanifest for each instance of gateway device 302 that sends data tocloud platform 1000. The manifest may indicate the most recent availableversion of software for gateway device 302, the installed version ofsoftware for gateway device 302, a retrieval URL for the most recentversion of software for gateway device 302, and a list of endpoint URLsthat define the location of cloud platform 1000. The endpoint URLs maybe helpful in the event that gateway device 302 is deployed in a countrythat requires data to be kept within the country for legal reasons.Accordingly, the URL may be different for each country. If the endpointURL is left empty, gateway device 302 may not send data to cloudplatform 1000.

High Level Process Flow

Referring now to FIGS. 25-26, block diagrams 2500 and 2600 illustratinga high level process flow performed by BMS 300 is shown, according to anexemplary embodiment. A manufacturer can log into a manufacturer portaland enter the device ID and get a device key auto-generated from theportal. Once a device ID is created, a device twin gets automatically becreated in cloud platform 324 with blank reported and bound points andwith a version 0. The manufacturer can embed the device ID and devicekey into gateway device 302 and can ship gateway device 302 to acustomer or supplier. The customer admin can log into an enterpriseapplication (e.g., one of the event hubs in cloud platform 1000) andcreate a user with the role of installation technician. The customeradmin can provide credentials to an installation technician to allow theinstallation technician to install gateway device 302 at the customersite. To install gateway device 302, the installation technician can loginto the enterprise application and adds the device ID to the customerrecord. The installation technician can then log into the UI of gatewaydevice 302 and setup the local time zone for gateway device 302.

Once connected to the internet, gateway device 302 may initiate a timesynchronization with time sync service to get the current time in UTCFormat and will store it. An exemplary embodiment of the timesynchronization service is shown with reference to FIG. TIME. All futuredata transmissions will be based on the time and the time zone ofgateway device 302. Gateway device 302 can get the twin version fromcloud platform 324 and store it locally. Gateway device 302 may requesta telemetry ID (e.g., timeseries ID) for device status/heartbeatmessages from telemetry service 1016. The telemetry ID can be storedlocally in gateway device 302 and in the twin for gateway device 302.Gateway device 302 can be configured to send out “heartbeat” messages ata regular frequency (e.g., every 15 mins) to heartbeat processor 1008using the status/heartbeat telemetry ID. These messages can be storedfor device connection status monitoring and for audit purposes.

Gateway device 302 can discover the building equipment connected to itand generate an equipment list from the discovered systems. Gatewaydevice 302 can send the equipment list to cloud platform 324. Cloudplatform 324 can use retrieve internally equipment model template forequipment included on the equipment list. If cloud platform 324 does nothave equipment model templates for the equipment it can request themfrom gateway device 302. Cloud platform 324 can use the equipment modelfiles and the equipment list to create a reported points list (e.g.,point objects). Cloud platform 324 can generate a list of bound pointsfrom a default subscription list for each system/equipment. For thebound points, telemetry service 1016 can create telemetry IDs. The pointID to telemetry ID mapping can be stored in cloud platform 324. Thebound points along with their telemetry IDs can also be stored in thedevices cloud twin and can be updated when changes of value occur.Gateway device 302 can synchronize with the twin by downloading andstoring a list of the bound points in local memory. Gateway device 302may transmit telemetry data for only the points listed in the boundpoints list.

When additional systems/equipment are connected to gateway device 302,gateway device 302 can discover the new systems/equipment and can updatethe equipment list. Gateway device 302 can send the updated equipmentlist to cloud platform 324. Cloud platform 324 can use the updatedequipment list to generate an updated bound points list. Cloud platform324 can generate bound point and telemetry IDs for any new points andcan update the device's twin to be synchronized by gateway device 302.

Gateway device 302 can be configured to transmit telemetry data for thepoints identified in the bound points list. Such data can be sent totelemetry service 1016 along with the timestamp. If the telemetry datacontains an enumerated set and an enumerated value, gateway device 302can store the enumerated values as JSON formatted data strings and passthe strings to telemetry service 1016 with the timestamp.

Command and control messages can be initiated from an enterprise portaland routed to gateway device 302 by cloud platform 324 (e.g., from webUI 1028 and/or CED/CSD event hub 1024). At a scheduled time, gatewaydevice 302 can log into cloud platform 324 and get the latest firmwareinformation for gateway device 302. If the latest firmware informationdoesn't match the installed firmware version at gateway device 302,gateway device 302 can download the latest firmware from the URLavailable in the message.

Personnel can log into the web UI 1028 and manually enter the serialnumber of systems and/or equipment. For some equipment, cloud platform324 can automatically fetch warranty information from a web service andupdate the warranty information stored in cloud platform 324. Equipmentschedules can be pushed by gateway device 302 and stored in cloudplatform 324. The schedules can be updated in the cloud via theenterprise portal and pushed back to gateway device 302. Setpointchanges for the system's bound points can be initiated from theenterprise portal. When a user makes a setpoint change to an item ofequipment, the information can be directed to gateway device 302 and aresponse can be stored in cloud platform 324.

In some embodiments, gateway device 302 includes a device ID and ahashed key for secure communication. The device ID, key, and/or otherpassword can be encoded to generate a SAS token, which can betransmitted over the network during communications with cloud platform324. For example, the SAS token can be transmitted during telemetry datatransmission, equipment alarms transmission, schedule synchronizationbetween gateway device 302 and cloud platform 324, and/or modifyingsetpoints and configuration parameters.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is related to U.S. Pat. No. 10,880,107 and U.S. patentapplication Ser. No. 16/740,279, filed Jan. 10, 2020, both of which areincorporated herein by reference in their entireties.

BACKGROUND

The present disclosure relates generally to building networks formonitoring and controlling building equipment in or around a building.More specifically, the present disclosure relates to systems and methodsfor wirelessly communicating in a building network.

In a building, various pieces of building equipment (e.g., HVACequipment, lighting equipment, security equipment, etc.) can communicatevia a network within the building. The network may be a wired network,such a building automation and control network (BACnet) network. Pullingcommunication cable for a wired network through a building adds to thelabor expense when installing building equipment. In retrofit scenarios,pulling new communication cable can be even more difficult or damagingto the building.

SUMMARY

A building network system for a building including wireless bridgedevices forming a multi-point-to-multi-point network for the building.The first wireless bridge device of the wireless bridge devices includesa radio, a wired communications interface configured to communicate witha first building automation control network master slave/token passing(BACnet MS/TP) device connected to the first wireless bridge device; anda processing circuit. The processing circuit is configured to providewireless communications to and from the first BACnet MS/TP device and asecond BACnet IP device such that the first BACnet MS/TP device and thesecond BACnet MS/TP device are operationally unaware of the wirelesscommunications. The wireless communications are master to mastercommunications.

One implementation of the present disclosure is related to a method. Themethod includes providing a first message from a first buildingautomation and control network master slave token passing (BACnet MS/TP)device via wired communication on a first BACnet network segment to afirst wireless bridge device. The first message is for a second BACnetdevice in wired communication with a second wireless bridge device. Themethod also includes providing the first message from the first wirelessbridge device to the second wireless bridge device via direct orindirect wireless communication and providing the first message from thesecond wireless bridge device to the second BACnet MS/TP device. Thefirst BACnet MS/TP device and the second BACnet MS/TP device areoperationally unaware of the wireless communications and the firstBACnet MS/TP device and the second BACnet MS/TP device are masterdevices. The first wireless bridge device and the second wireless bridgedevice are part of multi-point to multi-point network

One implementation of the present disclosure is related to a wirelessbridge device for a building network including a plurality of bridgedevices forming a wireless system and building automation and controlnetwork master slave/token passing (BACnet MS/TP) network segmentscomprising BACnet MSTP devices. The wireless bridge device includes awired communications interface configured to communicate with a firstBACnet MS/TP device connected to the first wireless bridge device. Thewireless bridge device also includes a processing circuit configured towirelessly transmit and receive messages to and from BACnet MS/TPdevices. The processing circuit is configured to transparentlycommunicate the messages such that the BACnet MS/TP devices areoperationally unaware of the wireless bridge system and is configured toparticipate multi-point-to-multi-point network.

One implementation of the present disclosure is related to a buildingnetwork system for a building. The building network system includeswireless bridge devices forming a network for the building. A firstwireless bridge device of the wireless bridge devices includes a radio,a wired communications interface configured to communicate with a firstmaster slave/token passing (MS/TP) device connected to the firstwireless bridge device, and a processing circuit configured to provide atemporary reply to a request from the first MS/TP device to a secondMS/TP device in wired communication with a second wireless bridge of thewireless bridge devices. The processing circuit is configured to pass atoken on behalf of the second MS/TP device, and the processing circuitis configured to provide a first reply to the request from the secondMS/TP device received via the second bridge device to the first MS/TPdevice when a token for the second MS/TP device is obtained.

One implementation of the present disclosure is related to a method. Themethod includes providing a request from a first building automation andcontrol network (BACnet) device via wired communication on a firstBACnet network to a first bridge device. The request is for a secondBACnet device in wired communication with a second bridge device. Themethod also includes passing a token on behalf of the second BACnetdevice by the first bridge device to the first BACnet network, receivinga reply to the request at the second bridge device from the secondBACnet device, and providing the reply from the second bridge device tothe first bridge device via wireless communications. The method alsoincludes providing the reply to the first BACnet device via wiredcommunication on the first BACnet network from the first bridge devicewhen a token for the second BACnet device is obtained.

One implementation of the present disclosure is related to a bridgedevice for a building network. The bridge device includes a radio, awired communications interface configured to communicate with a firstmaster slave/token passing (MS/TP) network, and a processing circuitconfigured to wirelessly transmit and receive messages to and from MS/TPdevices coupled to the MS/TP network. The processing circuit isconfigured to transparently communicate the messages such that the MS/TPdevices on the first MS/TP network are operationally unaware of awireless network associated with the bridge device by passing tokens forMS/TP devices outside of the MS/TP network.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, aspects, features, and advantages of the disclosurewill become more apparent and better understood by referring to thedetailed description taken in conjunction with the accompanyingdrawings, in which like reference characters identify correspondingelements throughout. In the drawings, like reference numbers generallyindicate identical, functionally similar, and/or structurally similarelements.

FIG. 1 is a drawing of a building equipped with a HVAC system, accordingto an exemplary embodiment.

FIG. 2 is a block diagram of a waterside system that may be used inconjunction with the building of FIG. 1, according to an exemplaryembodiment.

FIG. 3 is a block diagram of an airside system that may be used inconjunction with the building of FIG. 1, according to an exemplaryembodiment.

FIG. 4 is a block diagram of bridge device for use in a network in thebuilding of FIG. 1, according to an exemplary embodiment.

FIG. 5 is a block diagram of a point to point network in the building ofFIG. 1, according to an exemplary embodiment.

FIG. 6 is a block diagram of a mesh network in the building of FIG. 1,according to an exemplary embodiment.

FIG. 7 is a block diagram of a star network in the building of FIG. 1,according to an exemplary embodiment.

FIG. 8 is a flow diagram showing communication in the mesh network ofFIG. 6, according to an exemplary embodiment.

DETAILED DESCRIPTION Overview

Referring generally to the FIGURES, a wireless interface or bridgedevice is used by building equipment connected to wired buildingnetworks to exchange data according to various exemplary embodiments. Inmany buildings, building equipment is connected together in addition tobeing connected to external networks that may provide centralizedservices when the building equipment is being installed, tested, orused. In some embodiments, a wireless bridge for BACnet masterslave/token passing (MS/TP) network is provided that addresseschallenges associated with BACnet communications due to the multi-masterconfiguration and stricter timing constraints of BACnet networks. Insome embodiments, a wireless bridge or interface allows a wirelessnetwork to be used as a seamless replacement for some or all of physicalwiring between MS/TP devices on a BACnet MS/TP network. In someembodiments, a wireless bridge system bridges segments of an MS/TP bustransparently such that MS/TP devices are operationally unaware of thewireless system. In some embodiments, each wireless bridge deviceforwards messages received on its local MS/TP interface to theappropriate destination via the wireless network and forwards BACnetmessages received from other wireless bridge devices to applicable localMS/TP devices. In some embodiments, the wireless bridge deviceautomatically detects MS/TP devices on its bus and notifies otherwireless bridge devices on its network. Automatically detecting MS/TPdevices and assigning wireless addresses allows MS/TP devices to beoperationally unaware in some embodiments.

The wired networks (e.g., BACnet slave/token passing (MS/TP)) networkscan achieve connectivity across building assets in some embodiments. Theconnectivity may include equipment-to-equipment connectivity,equipment-to-the cloud connectivity, mobile device to the cloud, andmobile devices-to-equipment in the building. Equipment-to-equipmentconnectivity may be necessary since during installation, equipment mayneed to communicate with each other to verify proper operation beforenetwork infrastructure of a building is in place. Equipment-to-the cloudconnectivity may be necessary since equipment may need to be connectedto the cloud to perform optimized service operations or other operations(e.g., remote configuration, remote status reporting, receiving remotecontrol operations, cloud service testing, access diagnostic tools,device authentication for equipment to cloud operations, etc.).

Building Management System and HVAC System

Referring now to FIGS. 1-3, an exemplary building management system(BMS) and HVAC system in which the systems and methods can beimplemented are shown, according to an exemplary embodiment. Referringparticularly to FIG. 1, a perspective view of a building 10 is shown.Building 10 is served by a BMS. A BMS is, in general, a system ofdevices configured to control, monitor, and manage equipment in oraround a building or building area. A BMS can include, for example, aHVAC system, a security system, a lighting system, a fire alertingsystem, any other system that is capable of managing building functionsor devices, or any combination thereof.

The BMS that serves building 10 includes an HVAC system 100. HVAC system100 can include a plurality of HVAC devices (e.g., thermostats, sensors,controllers, heaters, chillers, air handling units, pumps, fans, thermalenergy storage, etc.) configured to provide heating, cooling,ventilation, or other services for building 10. For example, HVAC system100 is shown to include a waterside system 120 and an airside system130. Waterside system 120 can provide a heated or chilled fluid to anair handling unit of airside system 130. Airside system 130 can use theheated or chilled fluid to heat or cool an airflow provided to building10. An exemplary waterside system and airside system which can be usedin HVAC system 100 are described in greater detail with reference toFIGS. 2-3.

HVAC system 100 is shown to include a chiller 102, a boiler 104, and arooftop air handling unit (AHU) 106. Waterside system 120 can use boiler104 and chiller 102 to heat or cool a working fluid (e.g., water,glycol, etc.) and can circulate the working fluid to AHU 106. In variousembodiments, the HVAC devices of waterside system 120 can be located inor around building 10 (as shown in FIG. 1) or at an offsite locationsuch as a central plant (e.g., a chiller plant, a steam plant, a heatplant, etc.). The working fluid can be heated in boiler 104 or cooled inchiller 102, depending on whether heating or cooling is required inbuilding 10. Boiler 104 can add heat to the circulated fluid, forexample, by burning a combustible material (e.g., natural gas) or usingan electric heating element. Chiller 102 can place the circulated fluidin a heat exchange relationship with another fluid (e.g., a refrigerant)in a heat exchanger (e.g., an evaporator) to absorb heat from thecirculated fluid. The working fluid from chiller 102 and/or boiler 104can be transported to AHU 106 via piping 108.

AHU 106 can place the working fluid in a heat exchange relationship withan airflow passing through AHU 106 (e.g., via one or more stages ofcooling coils and/or heating coils). The airflow can be, for example,outside air, return air from within building 10, or a combination ofboth. AHU 106 can transfer heat between the airflow and the workingfluid to provide heating or cooling for the airflow. For example, AHU106 can include one or more fans or blowers configured to pass theairflow over or through a heat exchanger containing the working fluid.The working fluid can then return to chiller 102 or boiler 104 viapiping 110.

Airside system 130 can deliver the airflow supplied by AHU 106 (i.e.,the supply airflow) to building 10 via air supply ducts 112 and canprovide return air from building 10 to AHU 106 via air return ducts 114.In some embodiments, airside system 130 includes multiple variable airvolume (VAV) units 116. For example, airside system 130 is shown toinclude a separate VAV unit 116 on each floor or zone of building 10.VAV units 116 can include dampers or other flow control elements thatcan be operated to control an amount of the supply airflow provided toindividual zones of building 10. In other embodiments, airside system130 delivers the supply airflow into one or more zones of building 10(e.g., via supply ducts 112) without using intermediate VAV units 116 orother flow control elements. AHU 106 can include various sensors (e.g.,temperature sensors, pressure sensors, etc.) configured to measureattributes of the supply airflow. AHU 106 can receive input from sensorslocated within AHU 106 and/or within the building zone and can adjustthe flow rate, temperature, or other attributes of the supply airflowthrough AHU 106 to achieve setpoint conditions for the building zone.

Referring now to FIG. 2, a block diagram of a waterside system 200 isshown, according to an exemplary embodiment. In various embodiments,waterside system 200 can supplement or replace waterside system 120 inHVAC system 100 or can be implemented separate from HVAC system 100.When implemented in HVAC system 100, waterside system 200 can include asubset of the HVAC devices in HVAC system 100 (e.g., boiler 104, chiller102, pumps, valves, etc.) and can operate to supply a heated or chilledfluid to AHU 106. The HVAC devices of waterside system 200 can belocated within building 10 (e.g., as components of waterside system 120)or at an offsite location such as a central plant.

In FIG. 2, waterside system 200 is shown as a central plant having aplurality of subplants 202-212. Subplants 202-212 are shown to include aheater subplant 202, a heat recovery chiller subplant 204, a chillersubplant 206, a cooling tower subplant 208, a hot thermal energy storage(TES) subplant 210, and a cold thermal energy storage (TES) subplant212. Subplants 202-212 consume resources (e.g., water, natural gas,electricity, etc.) from utilities to serve the thermal energy loads(e.g., hot water, cold water, heating, cooling, etc.) of a building orcampus. For example, heater subplant 202 can be configured to heat waterin a hot water loop 214 that circulates the hot water between heatersubplant 202 and building 10. Chiller subplant 206 can be configured tochill water in a cold water loop 216 that circulates the cold waterbetween chiller subplant 206 building 10. Heat recovery chiller subplant204 can be configured to transfer heat from cold water loop 216 to hotwater loop 214 to provide additional heating for the hot water andadditional cooling for the cold water. Condenser water loop 218 canabsorb heat from the cold water in chiller subplant 206 and reject theabsorbed heat in cooling tower subplant 208 or transfer the absorbedheat to hot water loop 214. Hot TES subplant 210 and cold TES subplant212 can store hot and cold thermal energy, respectively, for subsequentuse.

Hot water loop 214 and cold water loop 216 can deliver the heated and/orchilled water to air handlers located on the rooftop of building 10(e.g., AHU 106) or to individual floors or zones of building 10 (e.g.,VAV units 116). The air handlers push air past heat exchangers (e.g.,heating coils or cooling coils) through which the water flows to provideheating or cooling for the air. The heated or cooled air can bedelivered to individual zones of building 10 to serve the thermal energyloads of building 10. The water then returns to subplants 202-212 toreceive further heating or cooling.

Although subplants 202-212 are shown and described as heating andcooling water for circulation to a building, it is understood that anyother type of working fluid (e.g., glycol, CO2, etc.) can be used inplace of or in addition to water to serve the thermal energy loads. Inother embodiments, subplants 202-212 can provide heating and/or coolingdirectly to the building or campus without requiring an intermediateheat transfer fluid. These and other variations to waterside system 200are within the teachings of the present invention.

Each of subplants 202-212 can include a variety of equipment configuredto facilitate the functions of the subplant. For example, heatersubplant 202 is shown to include a plurality of heating elements 220(e.g., boilers, electric heaters, etc.) configured to add heat to thehot water in hot water loop 214. Heater subplant 202 is also shown toinclude several pumps 222 and 224 configured to circulate the hot waterin hot water loop 214 and to control the flow rate of the hot waterthrough individual heating elements 220. Chiller subplant 206 is shownto include a plurality of chillers 232 configured to remove heat fromthe cold water in cold water loop 216. Chiller subplant 206 is alsoshown to include several pumps 234 and 236 configured to circulate thecold water in cold water loop 216 and to control the flow rate of thecold water through individual chillers 232.

Heat recovery chiller subplant 204 is shown to include a plurality ofheat recovery heat exchangers 226 (e.g., refrigeration circuits)configured to transfer heat from cold water loop 216 to hot water loop214. Heat recovery chiller subplant 204 is also shown to include severalpumps 228 and 230 configured to circulate the hot water and/or coldwater through heat recovery heat exchangers 226 and to control the flowrate of the water through individual heat recovery heat exchangers 226.Cooling tower subplant 208 is shown to include a plurality of coolingtowers 238 configured to remove heat from the condenser water incondenser water loop 218. Cooling tower subplant 208 is also shown toinclude several pumps 240 configured to circulate the condenser water incondenser water loop 218 and to control the flow rate of the condenserwater through individual cooling towers 238.

Hot TES subplant 210 is shown to include a hot TES tank 242 configuredto store the hot water for later use. Hot TES subplant 210 can alsoinclude one or more pumps or valves configured to control the flow rateof the hot water into or out of hot TES tank 242. Cold TES subplant 212is shown to include cold TES tanks 244 configured to store the coldwater for later use. Cold TES subplant 212 can also include one or morepumps or valves configured to control the flow rate of the cold waterinto or out of cold TES tanks 244.

In some embodiments, one or more of the pumps in waterside system 200(e.g., pumps 222, 224, 228, 230, 234, 236, and/or 240) or pipelines inwaterside system 200 include an isolation valve associated therewith.Isolation valves can be integrated with the pumps or positioned upstreamor downstream of the pumps to control the fluid flows in watersidesystem 200. In various embodiments, waterside system 200 can includemore, fewer, or different types of devices and/or subplants based on theparticular configuration of waterside system 200 and the types of loadsserved by waterside system 200.

Referring now to FIG. 3, a block diagram of an airside system 300 isshown, according to an exemplary embodiment. In various embodiments,airside system 300 can supplement or replace airside system 130 in HVACsystem 100 or can be implemented separate from HVAC system 100. Whenimplemented in HVAC system 100, airside system 300 can include a subsetof the HVAC devices in HVAC system 100 (e.g., AHU 106, VAV units 116,ducts 112-114, fans, dampers, etc.) and can be located in or aroundbuilding 10. Airside system 300 can operate to heat or cool an airflowprovided to building 10 using a heated or chilled fluid provided bywaterside system 200.

In FIG. 3, airside system 300 is shown to include an economizer-type airhandling unit (AHU) 302. Economizer-type AHUs vary the amount of outsideair and return air used by the air handling unit for heating or cooling.For example, AHU 302 can receive return air 304 from building zone 306via return air duct 308 and can deliver supply air 310 to building zone306 via supply air duct 312. In some embodiments, AHU 302 is a rooftopunit located on the roof of building 10 (e.g., AHU 106 as shown inFIG. 1) or otherwise positioned to receive both return air 304 andoutside air 314. AHU 302 can be configured to operate exhaust air damper316, mixing damper 318, and outside air damper 320 to control an amountof outside air 314 and return air 304 that combine to form supply air310. Any return air 304 that does not pass through mixing damper 318 canbe exhausted from AHU 302 through exhaust damper 316 as exhaust air 322.

Each of dampers 316-320 can be operated by an actuator. For example,exhaust air damper 316 can be operated by actuator 324, mixing damper318 can be operated by actuator 326, and outside air damper 320 can beoperated by actuator 328. Actuators 324-328 can communicate with an AHUcontroller 330 via a communications link 332. Actuators 324-328 canreceive control signals from AHU controller 330 and can provide feedbacksignals to AHU controller 330. Feedback signals can include, forexample, an indication of a current actuator or damper position, anamount of torque or force exerted by the actuator, diagnosticinformation (e.g., results of diagnostic tests performed by actuators324-328), status information, commissioning information, configurationsettings, calibration data, and/or other types of information or datathat can be collected, stored, or used by actuators 324-328. AHUcontroller 330 can be an economizer controller configured to use one ormore control algorithms (e.g., state-based algorithms, extremum seekingcontrol (ESC) algorithms, proportional-integral (PI) control algorithms,proportional-integral-derivative (PID) control algorithms, modelpredictive control (MPC) algorithms, feedback control algorithms, etc.)to control actuators 324-328.

Still referring to FIG. 3, AHU 302 is shown to include a cooling coil334, a heating coil 336, and a fan 338 positioned within supply air duct312. Fan 338 can be configured to force supply air 310 through coolingcoil 334 and/or heating coil 336 and provide supply air 310 to buildingzone 306. AHU controller 330 can communicate with fan 338 viacommunications link 340 to control a flow rate of supply air 310. Insome embodiments, AHU controller 330 controls an amount of heating orcooling applied to supply air 310 by modulating a speed of fan 338.

Cooling coil 334 can receive a chilled fluid from waterside system 200(e.g., from cold water loop 216) via piping 342 and can return thechilled fluid to waterside system 200 via piping 344. Valve 346 can bepositioned along piping 342 or piping 344 to control a flow rate of thechilled fluid through cooling coil 334. In some embodiments, coolingcoil 334 includes multiple stages of cooling coils that can beindependently activated and deactivated (e.g., by AHU controller 330, byBMS controller 366, etc.) to modulate an amount of cooling applied tosupply air 310.

Heating coil 336 can receive a heated fluid from waterside system 200(e.g., from hot water loop 214) via piping 348 and can return the heatedfluid to waterside system 200 via piping 350. Valve 352 can bepositioned along piping 348 or piping 350 to control a flow rate of theheated fluid through heating coil 336. In some embodiments, heating coil336 includes multiple stages of heating coils that can be independentlyactivated and deactivated (e.g., by AHU controller 330, by BMScontroller 366, etc.) to modulate an amount of heating applied to supplyair 310.

Each of valves 346 and 352 can be controlled by an actuator. Forexample, valve 346 can be controlled by actuator 354 and valve 352 canbe controlled by actuator 356. Actuators 354-356 can communicate withAHU controller 330 via communications links 358-360. Actuators 354-356can receive control signals from AHU controller 330 and can providefeedback signals to controller 330. In some embodiments, AHU controller330 receives a measurement of the supply air temperature from atemperature sensor 362 positioned in supply air duct 312 (e.g.,downstream of cooling coil 334 and/or heating coil 336). AHU controller330 can also receive a measurement of the temperature of building zone306 from a temperature sensor 364 located in building zone 306.

In some embodiments, AHU controller 330 operates valves 346 and 352 viaactuators 354-356 to modulate an amount of heating or cooling providedto supply air 310 (e.g., to achieve a setpoint temperature for supplyair 310 or to maintain the temperature of supply air 310 within asetpoint temperature range). The positions of valves 346 and 352 affectthe amount of heating or cooling provided to supply air 310 by coolingcoil 334 or heating coil 336 and may correlate with the amount of energyconsumed to achieve a desired supply air temperature. AHU controller 330can control the temperature of supply air 310 and/or building zone 306by activating or deactivating coils 334-336, adjusting a speed of fan338, or a combination of both.

Still referring to FIG. 3, airside system 300 is shown to include abuilding management system (BMS) controller 366 and a client device 368.BMS controller 366 can include one or more computer systems (e.g.,servers, supervisory controllers, subsystem controllers, etc.) thatserve as system level controllers, application or data servers, headnodes, or master controllers for airside system 300, waterside system200, HVAC system 100, and/or other controllable systems that servebuilding 10. BMS controller 366 can communicate with multiple downstreambuilding systems or subsystems (e.g., HVAC system 100, a securitysystem, a lighting system, waterside system 200, etc.) via acommunications link 370 according to like or disparate protocols (e.g.,LON, BACnet, etc.). In various embodiments, AHU controller 330 and BMScontroller 366 can be separate (as shown in FIG. 3) or integrated. In anintegrated implementation, AHU controller 330 can be a software moduleconfigured for execution by a processor of BMS controller 366.

In some embodiments, AHU controller 330 receives information from BMScontroller 366 (e.g., commands, setpoints, operating boundaries, etc.)and provides information to BMS controller 366 (e.g., temperaturemeasurements, valve or actuator positions, operating statuses,diagnostics, etc.). For example, AHU controller 330 can provide BMScontroller 366 with temperature measurements from temperature sensors362-364, equipment on/off states, equipment operating capacities, and/orany other information that can be used by BMS controller 366 to monitoror control a variable state or condition within building zone 306.

Client device 368 can include one or more human-machine interfaces orclient interfaces (e.g., graphical user interfaces, reportinginterfaces, text-based computer interfaces, client-facing web services,web servers that provide pages to web clients, etc.) for controlling,viewing, or otherwise interacting with HVAC system 100, its subsystems,and/or devices. Client device 368 can be a computer workstation, aclient terminal, a remote or local interface, or any other type of userinterface device. Client device 368 can be a stationary terminal or amobile device. For example, client device 368 can be a desktop computer,a computer server with a user interface, a laptop computer, a tablet, asmartphone, a PDA, or any other type of mobile or non-mobile device.Client device 368 can communicate with BMS controller 366 and/or AHUcontroller 330 via communications link 372.

Building Wireless Network

Some embodiments relate to a system for and method of providing awireless bridge system for a building, such as the building 10 (FIG. 1)which bridges segments of a wired bus transparently such that MS/TPdevices are operationally un-aware of the wireless system. In someembodiments, each wireless bridge device forwards messages received onits local wired interface (e.g., MS/TP interface) to the appropriatedestination via the wireless network, when applicable. In someembodiments, each wireless bridge device forwards BACnet messagesreceived from other wireless bridge devices to applicable local MS/TPdevices, when applicable.

In some embodiments, the wireless bridge device automatically detectsMS/TP devices on its bus and notifies other wireless bridge devices onits network. In some embodiments, the wireless bridge device optimizesMS/TP throughput by proxying multiple MS/TP devices with a single token.In some embodiments, the MS/TP tokens are maintained independently oneach wired MS/TP network segment. In some embodiments, the wirelessbridge device simulates an MS/TP token on behalf of each MS/TP deviceavailable over the wireless bridge device. In some embodiments, thewireless bridge device optionally postpones responses on behalf of anMS/TP device based on latency. In some embodiments, a mesh network isformed and each mesh node is equivalent for minimal configuration.

Referring now to FIG. 4, a building system, such as a building systemincluding one or more of the components discussed in FIGS. 1-3, caninclude a bridge device 400. Bridge device 400 includes a radio 402, acommunications processor 404 and a wired interface 406. Bridge device400 is coupled to a wired network 408, such as, an MS/TP network (e.g.,BACnet MS/TP network).

Wired interface 406 is a communication interface (e.g., including aRS-485 interface) in some embodiments. Wired interface 406 includes aRS-485 serial port for communication with the wired network 408 (e.g., aBACnet MS/TP network). The wired network 408 can be coupled with wireddevices, such as HAVC devices, lighting devices, security devices, etc.In some embodiments, the wired network 408 is coupled to buildingdevices associated with a BMS.

Radio 402 is a wireless network radio for communication with otherwireless bridge devices in some embodiments. The wireless bridge devicesform a wireless network in some embodiments. Depending on the radiotechnology in the wireless bridge device, the wireless network can be aZigbee network using an 802.15.4 radio, WiFi network using an 802.11radio, a Bluetooth mesh network, Wi-Fi (star, mesh, Direct) network,etc. The radio 402 can configured to communicate with a mesh network viaWi-Fi, ZigBee (e.g., ZigBee IP, ZigBee Pro Green Power), Bluetooth,LoRa, a local area network (LAN), a metropolitan area network (MAN), awide area network (WAN) (e.g., the Internet), ad hoc wirelesscommunication (e.g., MANET, VANET, SPANET, iMANET), and/or any othertype of wireless communication. In some embodiments, each wirelessbridge device, such as bridge device 400, is connected to the MS/TP portof an MS/TP device (controller, actuator, sensor, lighting devices,security devices, any HVAC device discussed above, etc.) or directly toa segment of a wired network 408 (e.g., an MS/TP wired network) via thewired interface 406.

The communications processor 404 executes firmware and coordinatereception and transmission of BACnet messages to and from the wiredinterface 406. In some embodiments, the communications processor 404 ofbridge device 400 automatically discovers the MS/TP devices that arepresent on the MS/TP network segment (e.g., MS/TP network or wirednetwork 408) and shares that information with other wireless bridgedevices so that the other bridge devices know to which wireless bridgedevice messages destined for those MS/TP devices should be forwarded.The communications processor 404 and other bridge devices maintainproper timing and token passing on the MS/TP network.

The communications processor 404 can include memory according to someembodiments. The communications processor 404 executes firmware storedin memory and performs or supervises media access control (MAC) layerand physical layer operations. The communications processor 404 receivesBACnet messages from the wired interface 406. In some embodiments, thecommunications processor 404 of bridge device 400 uses software toautomatically discover the MS/TP devices that are present on the MS/TPnetwork segment (e.g., wired network 408) and shares that informationwith other wireless bridge devices so that the other bridge devices knowto which wireless bridge device messages destined for those MS/TPdevices should be forwarded. Automatic discovery can be achieved bymonitoring the token on the network 408 or bus to determine whichdevices are actually communicating and using the token in someembodiments. In some embodiments, automatic discovery can be achieved byinspecting the messages that are being communicated on the wired network408 or bus to discover messages and addresses. For example, if a deviceis present and receives a message on the wired side, the bridge device400 determines the address is present on the wired network 408 and viceversa for the wireless side. Automatic discovery is performed in themedia access control (MAC) layer of the wireless device 400 in someembodiments.

Communications processor 404 can be configured to perform some and/orall of the functionality of bridge device 400. In some embodiments,communications processor 404 is configured to perform some or all of thefunctionality necessary for connecting to mesh, point to point, or starnetworks and for transmitting information to and from the mesh, point topoint, or star network. In some embodiments, communications processor404 is configured to perform the functionality necessary to operate asan access point and to transfer information between wired network 408and radio 402. Processor 404 can be a general purpose or specificpurpose processor, an application specific integrated circuit (ASIC),one or more field programmable gate arrays (FPGAs), a group ofprocessing components, or other suitable processing components.Processor 404 may be configured to execute computer code and/orinstructions stored in memory or received from other computer readablemedia (e.g., CDROM, network storage, a remote server, etc.). In someembodiments, the memory stores a Linux operating system, the Linuxoperating system can facilitate some and/or all of the functionality ofthe components of the memory. The memory can include one or more devices(e.g., memory units, memory devices, storage devices, etc.) for storingdata and/or computer code for completing and/or facilitating the variousprocesses described in the present disclosure. In some embodiments, thememory stores data and/or computer code for completing and/orfacilitating the various processes relevant to the operation ofcommunications. The memory can include random access memory (RAM),read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Thememory can include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures for bridge device 400.

The bridge device 400 can use standards such as IEEE 802.11s or anyvariation of IEEE 802.11s to implement a mesh network between bridgedevices. The bridge device 400 can utilize stored information (e.g.,stored and/or shared information) regarding the links between variousnetwork devices to determine the most efficient path in the mesh networkto forward data.

Bridge device 400 can be configured to establish links with other bridgedevices for the purpose of being able to forward data packets on eachother's behalf. Forwarding packets allows for data at one bridge deviceto be passed from bridge device to bridge device to reach itsdestination on another device on MS/TP network or wired network 408, orthe Internet, even when the source and destination devices are not indirect range of each other.

With reference to FIG. 5, a network 500 includes a bridge device 510, abridge device 520, an MSTP device 524, an MS/TP network segment 502, andMS/TP devices 504, 506, and 508. Bridge devices 510 and 520 are similarto bridge device 410. MS/TP network segment 502 is similar to wirednetwork 408. In some embodiments, network 500 is a point to pointnetwork with bridge devices 510 and 520 communicating wirelessly witheach other. Bridge device 510 communicates via wired communications viaMS/TP network segment 502 with devices 504, 506, and 508. Bridge device520 can be coupled via a wired connection directly to device 524 or viaa MS/TP network segment similar to segment 502.

With reference to FIG. 6, a network 600 includes a bridge device 610, abridge device 620, a bridge device 530, a bridge device 640, an MS/TPnetwork segment 602, an MS/TP network segment 632 and MS/TP devices 604,606, 608, 624, 624, 636 and 644. Bridge devices 610, 620, 630, and 640are similar to bridge device 410. MS/TP network segments 602 and 632 aresimilar to wired network 408. In some embodiments, network 600 is a meshnetwork with bridge devices 610, 620, 630, and 640 communicatingwirelessly with each other. Bridge device 610 communicates via wiredcommunications via MS/TP network segment 602 with devices 604, 606, and608. Bridge device 630 communicates via wired communications via MS/TPnetwork segment 632 with devices 634 and 636. Bridge device 620 can becoupled via a wired connection directly to device 624 or via a MS/TPnetwork segment similar to segment 602. Bridge device 640 can be coupledvia a wired connection directly to MS/TP device 644 or via a MS/TPnetwork segment similar to segment 602.

With reference to FIG. 7, a network 700 includes a bridge device 710, abridge device 720, a bridge device 730, a bridge device 740, an MS/TPnetwork segment 702, an MS/TP network segment 642 and MS/TP devices 704,706, 708, 734, 7444, and 646. Bridge devices 710, 720, 730, and 740 aresimilar to bridge device 410. MS/TP network segments 702 and 742 are issimilar to wired network 408. In some embodiments, network 700 is a starmesh network with bridge devices 710, 730, and 740 communicatingwirelessly with each other via bridge device 720. Bridge device 710communicates via wired communications via MS/TP network segment 702 withdevices 704, 706, and 708. Bridge device 740 communicates via wiredcommunications via MS/TP network segment 742 with devices 734, and 736.Bridge device 730 can be coupled via a wired connection directly todevice 734 or via a MS/TP network segment similar to segment 702.

With reference to FIGS. 6 and 8, a flow 800 can be performed in network600. Flow 800 can also be performed in networks 600 and 700. When anMS/TP device (A) (e.g., device 634) sends a BACnet message (e.g., arequest) to another MS/TP device (B) (e.g., device 604), the request isforwarded over the wireless mesh network using bridges 610, 620, and 630or bridges 610, 640, and 630 in an operation 802. The bridge device 630may generate a temporary message, such as a temporary reply on behalf ofdevice B to maintain timing on the MS/TP network segment 632 while themessage is forwarded through the wireless network to device B in anoperation 804. The temporary reply is used when a link will take toolong. In such a circumstance, the bridge device 630 sends the temporaryreply as a postpone message that indicates a delay and that the device634 can perform another operation or pass the token in some embodiments.The use of the postpone message prevents unnecessary network recoverysteps due to delays caused by wireless transmissions. In operation 804,the request is wrapped in a wireless package for wireless transmissionby the bridge device 630. The receiving bridge device 610 unwraps thewireless message and provides the request to the device 604 in the wiredformat. In some embodiments, the bridge device 630 inspects the messageto determine if the message is a request and a reply is necessary. Insome embodiments, the wireless network is fast enough to meet the timingrequirements of the MS/TP network segment 632, the token is not passed.

Once device B (e.g., device 634) replies, the reply is held at theoriginal wireless bridge device (bridge device 630) until the token fordevice B is obtained in an operation 806. The reply is wrapped in awireless message and unwrapped for the wired format by the bridge device610. When the token for device B is obtained, the bridge device 630forwards the reply to device A on the MS/TP network segment 632.

Due to this proper maintenance of the MS/TP timing and token passing inflow 800, no changes are needed on the MS/TP devices A and B to supportthe wireless bridging protocol in some embodiments. The protocol istransparent to the MS/TP devices 604, 606, 608, 624, 624, 636 and 644and can advantageously be used in new networks as well as existingnetworks and extensions thereof without any changes to the existingMS/TP devices 604, 606, 608, 624, 624, 636 and 644. The protocol andnetwork structure of networks 500, 600 and 700 also allows for lesscostly repairs of a network that has been damaged due to the potentiallytime-consuming search for damaged communication cable and/or the need toinstall replacement communication cable.

In some embodiments, the bridge device 600 simulates an MS/TP token onbehalf of each MS/TP device 604, 606, 608, 624, 624, 636 and 644available over the bridge device 600. In some embodiments, the wirelessbridge device will optionally postpone responses on behalf of an MS/TPdevice based on latency. In some embodiments, the bridge device 600includes queue that stores replies or other communications in the queueand provides the replies or other communications when a token isobtained. The queue can maintain the order of the communications.

The wireless connection in networks 500, 600, and 700 can beautomatically formed in point to point, mesh or star topologies. Forexample, the bridge devices in 500, 600, and 700 can be configured toautomatically form a mesh network. The mesh network can be a Wi-Fi meshnetwork, a ZigBee mesh network, a LoRa mesh network, and/or any othermesh network or combination thereof. The number of MS/TP devices (e.g.,devices 604, 606, 608, 624, 624, 636 and 644), network segments (e.g.,segments 602 and 632), and bridge devices (e.g., bridge devices 510,520, 610, 620, 630, 640, 710, 720, 730, and 740) shown in the Figuresare exemplary only and additional or fewer components can be utilized.In some embodiments, each network segment 502, 602, 632 702, and 742 hasits own token. Networks 500, 600, and 700 are configured for multipointto multipoint communications in some embodiments. In some embodiments,the bridge devices 510, 520, 610, 620, 630, 640, 710, 720, 730, and 740are configured for multipoint to multipoint communications in amultipoint to multipoint capable network. In some embodiments, networks500, 600, and 700 are configured for master-to-master communications(e.g., through bridge devices 510, 520, 610, 620, 630, 640, 710, 720,730, and 740).

Devices 604, 606, 608, 624, 624, 636 and 644 as well as the devices innetworks 500 and 700 may be any kind of HVAC, security, and/or fireprevention device and/or system. In some embodiments, building equipmenton the wired network 408 is one and/or a combination of AHU 106, VAVs116, boiler 104, chiller 102, thermostats, controllers, sensors,actuators, valves, and/or any other building HVAC device. In someembodiments, devices 604, 606, 608, 624, 624, 636 and 644 can be HVACcontrollers, sensors, thermostats, fire detectors, fire panels, securitycameras, security panels, and/or any other pieces of building equipment.

Each of devices 604, 606, 608, 624, 624, 636 and 644 may includesub-components which perform different functions, according to someembodiments. Various configurations and numeration of the differentdevices 604, 606, 608, 624, 624, 636 and 644 are possible according tosome embodiments. In some embodiments, for example, all of the 604, 606,608, 624, 624, 636 and 644 may be environmental controller devicesconfigured to transmit information between other environmentalcontroller devices via bridge devices 610, 620, 620 and 640.

Configuration of Exemplary Embodiments

The construction and arrangement of the systems and methods as shown inthe various exemplary embodiments are illustrative only. Although only afew embodiments have been described in detail in this disclosure, manymodifications are possible (e.g., variations in sizes, dimensions,structures, shapes and proportions of the various elements, values ofparameters, mounting arrangements, use of materials, colors,orientations, etc.). For example, the position of elements may bereversed or otherwise varied and the nature or number of discreteelements or positions may be altered or varied. Accordingly, all suchmodifications are intended to be included within the scope of thepresent disclosure. The order or sequence of any process or method stepsmay be varied or re-sequenced according to alternative embodiments.Other substitutions, modifications, changes, and omissions may be madein the design, operating conditions and arrangement of the exemplaryembodiments without departing from the scope of the present disclosure.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure may be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROMor other optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Wheninformation is transferred or provided over a network or anothercommunications connection (either hardwired, wireless, or a combinationof hardwired or wireless) to a machine, the machine properly views theconnection as a machine-readable medium. Thus, any such connection isproperly termed a machine-readable medium. Combinations of the above arealso included within the scope of machine-readable media.Machine-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing machines to perform a certain function orgroup of functions.

Although the figures show a specific order of method steps, the order ofthe steps may differ from what is depicted. Also two or more steps maybe performed concurrently or with partial concurrence. Such variationwill depend on the software and hardware systems chosen and on designerchoice. All such variations are within the scope of the disclosure.Likewise, software implementations could be accomplished with standardprogramming techniques with rule based logic and other logic toaccomplish the various connection steps, processing steps, comparisonsteps and decision steps.

End of Appendix H. Configuration of Exemplary Embodiments

The construction and arrangement of the systems and methods as shown inthe various exemplary embodiments are illustrative only. Although only afew embodiments have been described in detail in this disclosure, manymodifications are possible (e.g., variations in sizes, dimensions,structures, shapes and proportions of the various elements, values ofparameters, mounting arrangements, use of materials, colors,orientations, etc.). For example, the position of elements may bereversed or otherwise varied and the nature or number of discreteelements or positions may be altered or varied. Accordingly, all suchmodifications are intended to be included within the scope of thepresent disclosure. The order or sequence of any process or method stepsmay be varied or re-sequenced according to alternative embodiments.Other substitutions, modifications, changes, and omissions may be madein the design, operating conditions and arrangement of the exemplaryembodiments without departing from the scope of the present disclosure.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure may be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROMor other optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Combinationsof the above are also included within the scope of machine-readablemedia. Machine-executable instructions include, for example,instructions and data which cause a general purpose computer, specialpurpose computer, or special purpose processing machines to perform acertain function or group of functions.

Although the figures show a specific order of method steps, the order ofthe steps may differ from what is depicted. Also two or more steps maybe performed concurrently or with partial concurrence. Such variationwill depend on the software and hardware systems chosen and on designerchoice. All such variations are within the scope of the disclosure.Likewise, software implementations could be accomplished with standardprogramming techniques with rule based logic and other logic toaccomplish the various connection steps, processing steps, comparisonsteps and decision steps.

A portion of the disclosure of this patent document (including theAppendices) contains material which is subject to copyright protection.The copyright owner has no objection to the facsimile reproduction byanyone of the patent document or the patent disclosure, as it appears inthe Patent and Trademark Office patent file or records, but otherwisereserves all copyright rights whatsoever.

What is claimed is:
 1. A building management system (BMS) comprising:building equipment operable to affect a physical state or condition of abuilding; a gateway device configured to couple to the buildingequipment via a wireless master slave/token passing (MS/TP) bus or awired MS/TP bus, the gateway device configured to communicate buildingdata from the building equipment to a cloud-based platform; thecloud-based platform comprising: a hub configured to receive thebuilding data; a plurality of cloud applications, wherein the pluralityof cloud applications are configured to receive the building data fromthe hub and process the building data to provide a building data output;wherein the cloud-based platform is configured to: communicate thebuilding data output to at least one of a control application, ananalytic application, or a monitoring application; and receive a commandfrom at least one of the control application, the analytic application,or the monitoring application, based on the building data output;wherein the gateway device is further configured to operate according tothe command.
 2. The building management system of claim 1, furthercomprising: a second building equipment operable to affect a physicalstate or condition of the building; wherein the gateway device isfurther configured to couple to the second building equipment via thewireless MS/TP bus or the wired MS/TP bus not coupling the gatewaydevice to the building equipment.
 3. The building management system ofclaim 1, wherein the building equipment and the gateway device arebuilding automation control network (BACnet) MS/TP devices.
 4. Thebuilding management of system of claim 1, wherein the cloud-basedplatform is further configured to: generate a virtual device twin of thegateway device based on gateway data received from the gateway device,the virtual device twin configured to represent an operating state ofthe gateway device, the gateway data comprising a list of propertiesthat control the operation of the gateway device; and generate a secondvirtual device twin based on the command from at least one of thecontrol application, the analytic application, or the monitoringapplication and the virtual device twin; wherein the gateway device isfurther configured to receive the second virtual device twin and operateaccording to the operating state it represents.
 5. The buildingmanagement system of claim 1, wherein the gateway device is furtherconfigured to identify the building equipment and generate a reportlisting the identified building equipment; the cloud-based platform isfurther configured to receive the report from the gateway device, routethe report to the plurality of cloud applications, generate a list ofbound properties of the identified building equipment based on thereport, and create timeseries for the bound properties of the identifiedbuilding equipment; and the gateway device is further configured todetect a change of value (COV) of a bound property listed in the list ofbound properties and post a sample of the bound property to thetimeseries in response to detecting the COV of the bound property. 6.The building management system of claim 5, wherein the cloud-basedplatform is configured to: identify an equipment model template for thebuilding equipment based on the report, the report being an equipmentlist; identify points defined by the equipment model template; andgenerate the list of bound properties of the building equipment based onthe points defined by the equipment model template.
 7. The buildingmanagement system of claim 5, wherein the gateway device is configuredto: obtain the list of bound properties of the building equipment fromthe cloud-based platform; and subscribe to COV notifications for thebound properties of the building equipment for each of the boundproperties listed in the list of bound properties; and detect the COV ofthe bound property in response to receiving a COV notification for thebound property from the building equipment.
 8. The building managementsystem of claim 1, the gateway device further configured to connect tothe cloud-based platform over at least one of a Wi-Fi, Ethernet, orcellular connection.
 9. The building management system of claim 1,wherein the wireless MS/TP network comprises a plurality of wirelessbridge devices forming a multi-point to multi-point network configuredto communicate between the gateway device and at least one BACnet MS/TPdevice.
 10. The building management system of claim 9, wherein themulti-point to multi-point network is configured to provide wirelesscommunications to and from the gateway device and the building equipmentsuch that the gateway device and the building equipment areoperationally unaware of the wireless communications.
 11. A method formonitoring and controlling building equipment in a building managementsystem, the method comprising: communicating, at a gateway devicecoupled to first building equipment via a wireless master slave/tokenpassing (MS/TP) bus or a wired MS/TP bus, building data from thebuilding equipment to a hub of a platform external to the gatewaydevice; generating, at a plurality of applications of the platformexternal to the gateway device, a building data output based on thebuilding data; receiving, at at least one of a control application, ananalytic application, or a monitoring application, the building dataoutput; receiving, at the platform external to the gateway device, acommand from at least one of the control application, the analyticapplication, or the monitoring application based on the building dataoutput; and operating the gateway device based on the command.
 12. Themethod of claim 11, further comprising: operating the first buildingequipment to affect a physical state or condition of a building;operating second building equipment to affect a physical state orcondition of a building; communicating, at the gateway device furthercoupled to the second building equipment via the wireless masterslave/token passing (MS/TP) bus or the wired MS/TP bus not coupling thegateway device to the first building equipment, building data from thefirst building equipment and the second building equipment to a hub of aplatform external to the gateway device.
 13. The method of claim 12,wherein the first building equipment, the second building equipment, andthe gateway device are building automation control network (BACnet)devices.
 14. The method of claim 11, further comprising; generating avirtual device twin of the gateway device at the platform external tothe gateway device, the virtual device twin configured to represent anoperating state of the gateway device; updating the virtual device twinbased on the command from at least one of the control application, theanalytic application, or the monitoring application; and operating thegateway device according to the operating state it represented by theupdated virtual device twin.
 15. The method of claim 11, the methodfurther comprising: identifying the first building equipment connectedto the gateway device and generating an equipment list listing the firstbuilding equipment; providing the equipment list from the gateway deviceto the platform external to the gateway device; generating at theplatform external to the gateway device a list of bound properties ofthe building equipment based on the equipment list and creatingtimeseries for the bound properties of the building equipment; detectingat the gateway device a change of value (COV) of a bound property listedin the list of bound properties; and posting from the gateway device asample of the bound property to the timeseries stored at the platformexternal to the gateway device in response to detecting the COV of thebound property.
 16. The method of claim 15, wherein generating the listof bound properties comprises: identifying an equipment model templatefor the building equipment listed in the equipment list; identifyingpoints defined by the equipment model template; and generating the listof bound properties of the building equipment based on the pointsdefined by the equipment model template.
 17. The method of claim 15,wherein detecting the COV of the bound property comprises: obtaining thelist of bound properties of the building equipment from the platformexternal to the gateway device; and subscribing to COV notifications forthe bound properties of the building equipment for each of the boundproperties listed in the list of bound properties; and detecting the COVof the bound property in response to receiving a COV notification forthe bound property from the building equipment.
 18. The method of claim11, wherein the wireless MS/TP network comprises a plurality of wirelessbridge devices, the method further comprising; forming a multi-point tomulti-point network configured to provide communication to and from thegateway device and the building equipment such that the gateway deviceand the building equipment are operationally unaware of the wirelesscommunications.
 19. A building management system (BMS) comprising one ormore non-transitory computer-readable storage media storing instructionsthat, when executed by one or more processors, cause the one or moreprocessors to perform operations comprising: identifying a first BACnetMS/TP device on a wired MS/TP network and a second BACnet MS/TP deviceon a wireless MS/TP network; generating, at a gateway device of abuilding management system, an equipment list listing the first BACnetMS/TP device and the second BACnet MS/TP device; providing the equipmentlist from the gateway device to a platform external to the gatewaydevice comprising: a hub configured to receive the equipment list fromthe gateway device; and a plurality of applications, where in theplurality of applications are configured to receive the equipment listfrom the hub and process the equipment list to provide a building dataoutput; generating, at the platform external to the gateway device, alist of bound properties of the first BACnet MS/TP device and the secondBACnet MS/TP device based on the equipment list and creating timeseriesfor the bound properties of the building equipment; detecting, at thegateway device, a change of value (COV) of a bound property listed inthe list of bound properties; posting a sample of the bound propertyfrom the gateway device to the timeseries stored at the platformexternal to the gateway device in response to detecting the COV of thebound property; communicating the building data output to at least oneof a control application, an analytic application, or a monitoringapplication; receiving a command from at least one of the controlapplication, the analytic application, or the monitoring applicationbased on the building data output; and operating the gateway deviceaccording to the command.
 20. The building management system of claim19, the operations further comprising displaying the building dataoutput on a user interface of at least one of the control application,the analytic application, or the monitoring application.